quartz/wallet/node_modules/@3rdweb/contracts/dist/contracts.esm.js
2022-03-04 20:05:23 +08:00

36568 lines
1.6 MiB

import { utils, Contract, ContractFactory } from 'ethers';
/* Autogenerated file. Do not edit manually. */
var _abi = [{
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "remaining",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "balance",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "decimalPlaces",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "decreaseApproval",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "increaseApproval",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "tokenName",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
outputs: [{
internalType: "string",
name: "tokenSymbol",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "totalTokensIssued",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "transferAndCall",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var LinkTokenInterface__factory = /*#__PURE__*/function () {
function LinkTokenInterface__factory() {}
LinkTokenInterface__factory.createInterface = function createInterface() {
return new utils.Interface(_abi);
};
LinkTokenInterface__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi, signerOrProvider);
};
return LinkTokenInterface__factory;
}();
LinkTokenInterface__factory.abi = _abi;
/* Autogenerated file. Do not edit manually. */
var _abi$1 = [{
inputs: [{
internalType: "bytes32",
name: "requestId",
type: "bytes32"
}, {
internalType: "uint256",
name: "randomness",
type: "uint256"
}],
name: "rawFulfillRandomness",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var VRFConsumerBase__factory = /*#__PURE__*/function () {
function VRFConsumerBase__factory() {}
VRFConsumerBase__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1);
};
VRFConsumerBase__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1, signerOrProvider);
};
return VRFConsumerBase__factory;
}();
VRFConsumerBase__factory.abi = _abi$1;
/* Autogenerated file. Do not edit manually. */
var _abi$2 = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var IERC20Upgradeable__factory = /*#__PURE__*/function () {
function IERC20Upgradeable__factory() {}
IERC20Upgradeable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$2);
};
IERC20Upgradeable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$2, signerOrProvider);
};
return IERC20Upgradeable__factory;
}();
IERC20Upgradeable__factory.abi = _abi$2;
/* Autogenerated file. Do not edit manually. */
var _abi$3 = [{
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
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: "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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var AccessControl__factory = /*#__PURE__*/function () {
function AccessControl__factory() {}
AccessControl__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$3);
};
AccessControl__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$3, signerOrProvider);
};
return AccessControl__factory;
}();
AccessControl__factory.abi = _abi$3;
/* Autogenerated file. Do not edit manually. */
var _abi$4 = [{
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var AccessControlEnumerable__factory = /*#__PURE__*/function () {
function AccessControlEnumerable__factory() {}
AccessControlEnumerable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$4);
};
AccessControlEnumerable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$4, signerOrProvider);
};
return AccessControlEnumerable__factory;
}();
AccessControlEnumerable__factory.abi = _abi$4;
/* Autogenerated file. Do not edit manually. */
var _abi$5 = [{
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"
}, {
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: "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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IAccessControl__factory = /*#__PURE__*/function () {
function IAccessControl__factory() {}
IAccessControl__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$5);
};
IAccessControl__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$5, signerOrProvider);
};
return IAccessControl__factory;
}();
IAccessControl__factory.abi = _abi$5;
/* Autogenerated file. Do not edit manually. */
var _abi$6 = [{
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"
}, {
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IAccessControlEnumerable__factory = /*#__PURE__*/function () {
function IAccessControlEnumerable__factory() {}
IAccessControlEnumerable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$6);
};
IAccessControlEnumerable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$6, signerOrProvider);
};
return IAccessControlEnumerable__factory;
}();
IAccessControlEnumerable__factory.abi = _abi$6;
/* Autogenerated file. Do not edit manually. */
var _abi$7 = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "OwnershipTransferred",
type: "event"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var Ownable__factory = /*#__PURE__*/function () {
function Ownable__factory() {}
Ownable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$7);
};
Ownable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$7, signerOrProvider);
};
return Ownable__factory;
}();
Ownable__factory.abi = _abi$7;
/* Autogenerated file. Do not edit manually. */
var _abi$8 = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalVotes",
outputs: [{
internalType: "uint256",
name: "againstVotes",
type: "uint256"
}, {
internalType: "uint256",
name: "forVotes",
type: "uint256"
}, {
internalType: "uint256",
name: "abstainVotes",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var GovernorCountingSimple__factory = /*#__PURE__*/function () {
function GovernorCountingSimple__factory() {}
GovernorCountingSimple__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$8);
};
GovernorCountingSimple__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$8, signerOrProvider);
};
return GovernorCountingSimple__factory;
}();
GovernorCountingSimple__factory.abi = _abi$8;
/* Autogenerated file. Do not edit manually. */
var _abi$9 = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldProposalThreshold",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newProposalThreshold",
type: "uint256"
}],
name: "ProposalThresholdSet",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldVotingDelay",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newVotingDelay",
type: "uint256"
}],
name: "VotingDelaySet",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldVotingPeriod",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newVotingPeriod",
type: "uint256"
}],
name: "VotingPeriodSet",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newProposalThreshold",
type: "uint256"
}],
name: "setProposalThreshold",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newVotingDelay",
type: "uint256"
}],
name: "setVotingDelay",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newVotingPeriod",
type: "uint256"
}],
name: "setVotingPeriod",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var GovernorSettings__factory = /*#__PURE__*/function () {
function GovernorSettings__factory() {}
GovernorSettings__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$9);
};
GovernorSettings__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$9, signerOrProvider);
};
return GovernorSettings__factory;
}();
GovernorSettings__factory.abi = _abi$9;
/* Autogenerated file. Do not edit manually. */
var _abi$a = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "token",
outputs: [{
internalType: "contract ERC20Votes",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var GovernorVotes__factory = /*#__PURE__*/function () {
function GovernorVotes__factory() {}
GovernorVotes__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$a);
};
GovernorVotes__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$a, signerOrProvider);
};
return GovernorVotes__factory;
}();
GovernorVotes__factory.abi = _abi$a;
/* Autogenerated file. Do not edit manually. */
var _abi$b = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldQuorumNumerator",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newQuorumNumerator",
type: "uint256"
}],
name: "QuorumNumeratorUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "quorumDenominator",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "quorumNumerator",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "token",
outputs: [{
internalType: "contract ERC20Votes",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newQuorumNumerator",
type: "uint256"
}],
name: "updateQuorumNumerator",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var GovernorVotesQuorumFraction__factory = /*#__PURE__*/function () {
function GovernorVotesQuorumFraction__factory() {}
GovernorVotesQuorumFraction__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$b);
};
GovernorVotesQuorumFraction__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$b, signerOrProvider);
};
return GovernorVotesQuorumFraction__factory;
}();
GovernorVotesQuorumFraction__factory.abi = _abi$b;
/* Autogenerated file. Do not edit manually. */
var _abi$c = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var Governor__factory = /*#__PURE__*/function () {
function Governor__factory() {}
Governor__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$c);
};
Governor__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$c, signerOrProvider);
};
return Governor__factory;
}();
Governor__factory.abi = _abi$c;
/* Autogenerated file. Do not edit manually. */
var _abi$d = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "balance",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "balance",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "balance",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}];
var IGovernor__factory = /*#__PURE__*/function () {
function IGovernor__factory() {}
IGovernor__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$d);
};
IGovernor__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$d, signerOrProvider);
};
return IGovernor__factory;
}();
IGovernor__factory.abi = _abi$d;
/* Autogenerated file. Do not edit manually. */
var _abi$e = [{
inputs: [{
internalType: "uint256",
name: "tokenId",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var IERC2981__factory = /*#__PURE__*/function () {
function IERC2981__factory() {}
IERC2981__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$e);
};
IERC2981__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$e, signerOrProvider);
};
return IERC2981__factory;
}();
IERC2981__factory.abi = _abi$e;
/* Autogenerated file. Do not edit manually. */
var _abi$f = [{
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var ERC2771Context__factory = /*#__PURE__*/function () {
function ERC2771Context__factory() {}
ERC2771Context__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$f);
};
ERC2771Context__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$f, signerOrProvider);
};
return ERC2771Context__factory;
}();
ERC2771Context__factory.abi = _abi$f;
/* Autogenerated file. Do not edit manually. */
var _abi$g = [{
stateMutability: "payable",
type: "fallback"
}, {
stateMutability: "payable",
type: "receive"
}];
var Proxy__factory = /*#__PURE__*/function () {
function Proxy__factory() {}
Proxy__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$g);
};
Proxy__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$g, signerOrProvider);
};
return Proxy__factory;
}();
Proxy__factory.abi = _abi$g;
/* Autogenerated file. Do not edit manually. */
var _abi$h = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var Pausable__factory = /*#__PURE__*/function () {
function Pausable__factory() {}
Pausable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$h);
};
Pausable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$h, signerOrProvider);
};
return Pausable__factory;
}();
Pausable__factory.abi = _abi$h;
function _inheritsLoose(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
_setPrototypeOf(subClass, superClass);
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
var _abi$i = [{
inputs: [{
internalType: "string",
name: "uri_",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode = "0x60806040523480156200001157600080fd5b506040516200171b3803806200171b83398101604081905262000034916200011b565b6200003f8162000046565b5062000234565b80516200005b9060029060208401906200005f565b5050565b8280546200006d90620001f7565b90600052602060002090601f016020900481019282620000915760008555620000dc565b82601f10620000ac57805160ff1916838001178555620000dc565b82800160010185558215620000dc579182015b82811115620000dc578251825591602001919060010190620000bf565b50620000ea929150620000ee565b5090565b5b80821115620000ea5760008155600101620000ef565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156200012f57600080fd5b82516001600160401b03808211156200014757600080fd5b818501915085601f8301126200015c57600080fd5b81518181111562000171576200017162000105565b604051601f8201601f19908116603f011681019083821181831017156200019c576200019c62000105565b816040528281528886848701011115620001b557600080fd5b600093505b82841015620001d95784840186015181850187015292850192620001ba565b82841115620001eb5760008684830101525b98975050505050505050565b600181811c908216806200020c57607f821691505b602082108114156200022e57634e487b7160e01b600052602260045260246000fd5b50919050565b6114d780620002446000396000f3fe608060405234801561001057600080fd5b50600436106100875760003560e01c80634e1273f41161005b5780634e1273f41461010a578063a22cb4651461012a578063e985e9c51461013d578063f242432a1461017957600080fd5b8062fdd58e1461008c57806301ffc9a7146100b25780630e89341c146100d55780632eb2c2d6146100f5575b600080fd5b61009f61009a366004610ddb565b61018c565b6040519081526020015b60405180910390f35b6100c56100c0366004610e1e565b610235565b60405190151581526020016100a9565b6100e86100e3366004610e42565b610287565b6040516100a99190610ea8565b610108610103366004611007565b61031b565b005b61011d6101183660046110b1565b6103bd565b6040516100a991906111b7565b6101086101383660046111ca565b6104fb565b6100c561014b366004611206565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b610108610187366004611239565b61050a565b60006001600160a01b03831661020f5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b148061026657506001600160e01b031982166303a24d0760e21b145b8061028157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600280546102969061129e565b80601f01602080910402602001604051908101604052809291908181526020018280546102c29061129e565b801561030f5780601f106102e45761010080835404028352916020019161030f565b820191906000526020600020905b8154815290600101906020018083116102f257829003601f168201915b50505050509050919050565b6001600160a01b0385163314806103375750610337853361014b565b6103a95760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610206565b6103b685858585856105a5565b5050505050565b606081518351146104365760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610206565b6000835167ffffffffffffffff81111561045257610452610ebb565b60405190808252806020026020018201604052801561047b578160200160208202803683370190505b50905060005b84518110156104f3576104c685828151811061049f5761049f6112d9565b60200260200101518583815181106104b9576104b96112d9565b602002602001015161018c565b8282815181106104d8576104d86112d9565b60209081029190910101526104ec81611305565b9050610481565b509392505050565b610506338383610818565b5050565b6001600160a01b0385163314806105265750610526853361014b565b6105985760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201527f20617070726f76656400000000000000000000000000000000000000000000006064820152608401610206565b6103b6858585858561090d565b815183511461061c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610206565b6001600160a01b0384166106805760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610206565b3360005b84518110156107aa5760008582815181106106a1576106a16112d9565b6020026020010151905060008583815181106106bf576106bf6112d9565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156107525760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610206565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061078f908490611320565b92505081905550505050806107a390611305565b9050610684565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516107fa929190611338565b60405180910390a4610810818787878787610ab4565b505050505050565b816001600160a01b0316836001600160a01b031614156108a05760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610206565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166109715760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610206565b3361098a81878761098188610c69565b6103b688610c69565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015610a0e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610206565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290610a4b908490611320565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610aab828888888888610cb4565b50505050505050565b6001600160a01b0384163b156108105760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610af89089908990889088908890600401611366565b602060405180830381600087803b158015610b1257600080fd5b505af1925050508015610b42575060408051601f3d908101601f19168201909252610b3f918101906113c4565b60015b610bf857610b4e6113e1565b806308c379a01415610b885750610b636113fd565b80610b6e5750610b8a565b8060405162461bcd60e51b81526004016102069190610ea8565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610206565b6001600160e01b0319811663bc197c8160e01b14610aab5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610206565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610ca357610ca36112d9565b602090810291909101015292915050565b6001600160a01b0384163b156108105760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610cf89089908990889088908890600401611487565b602060405180830381600087803b158015610d1257600080fd5b505af1925050508015610d42575060408051601f3d908101601f19168201909252610d3f918101906113c4565b60015b610d4e57610b4e6113e1565b6001600160e01b0319811663f23a6e6160e01b14610aab5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610206565b80356001600160a01b0381168114610dd657600080fd5b919050565b60008060408385031215610dee57600080fd5b610df783610dbf565b946020939093013593505050565b6001600160e01b031981168114610e1b57600080fd5b50565b600060208284031215610e3057600080fd5b8135610e3b81610e05565b9392505050565b600060208284031215610e5457600080fd5b5035919050565b6000815180845260005b81811015610e8157602081850181015186830182015201610e65565b81811115610e93576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610e3b6020830184610e5b565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715610ef757610ef7610ebb565b6040525050565b600067ffffffffffffffff821115610f1857610f18610ebb565b5060051b60200190565b600082601f830112610f3357600080fd5b81356020610f4082610efe565b604051610f4d8282610ed1565b83815260059390931b8501820192828101915086841115610f6d57600080fd5b8286015b84811015610f885780358352918301918301610f71565b509695505050505050565b600082601f830112610fa457600080fd5b813567ffffffffffffffff811115610fbe57610fbe610ebb565b604051610fd5601f8301601f191660200182610ed1565b818152846020838601011115610fea57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561101f57600080fd5b61102886610dbf565b945061103660208701610dbf565b9350604086013567ffffffffffffffff8082111561105357600080fd5b61105f89838a01610f22565b9450606088013591508082111561107557600080fd5b61108189838a01610f22565b9350608088013591508082111561109757600080fd5b506110a488828901610f93565b9150509295509295909350565b600080604083850312156110c457600080fd5b823567ffffffffffffffff808211156110dc57600080fd5b818501915085601f8301126110f057600080fd5b813560206110fd82610efe565b60405161110a8282610ed1565b83815260059390931b850182019282810191508984111561112a57600080fd5b948201945b8386101561114f5761114086610dbf565b8252948201949082019061112f565b9650508601359250508082111561116557600080fd5b5061117285828601610f22565b9150509250929050565b600081518084526020808501945080840160005b838110156111ac57815187529582019590820190600101611190565b509495945050505050565b602081526000610e3b602083018461117c565b600080604083850312156111dd57600080fd5b6111e683610dbf565b9150602083013580151581146111fb57600080fd5b809150509250929050565b6000806040838503121561121957600080fd5b61122283610dbf565b915061123060208401610dbf565b90509250929050565b600080600080600060a0868803121561125157600080fd5b61125a86610dbf565b945061126860208701610dbf565b93506040860135925060608601359150608086013567ffffffffffffffff81111561129257600080fd5b6110a488828901610f93565b600181811c908216806112b257607f821691505b602082108114156112d357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611319576113196112ef565b5060010190565b60008219821115611333576113336112ef565b500190565b60408152600061134b604083018561117c565b828103602084015261135d818561117c565b95945050505050565b60006001600160a01b03808816835280871660208401525060a0604083015261139260a083018661117c565b82810360608401526113a4818661117c565b905082810360808401526113b88185610e5b565b98975050505050505050565b6000602082840312156113d657600080fd5b8151610e3b81610e05565b600060033d11156113fa5760046000803e5060005160e01c5b90565b600060443d101561140b5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561143b57505050505090565b82850191508151818111156114535750505050505090565b843d870101602082850101111561146d5750505050505090565b61147c60208286010187610ed1565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526114bf60a0830184610e5b565b97965050505050505056fea164736f6c6343000809000a";
var isSuperArgs = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC1155__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC1155__factory, _ContractFactory);
function ERC1155__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$i, _bytecode, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC1155__factory.prototype;
_proto.deploy = function deploy(uri_, overrides) {
return _ContractFactory.prototype.deploy.call(this, uri_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(uri_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, uri_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$i);
};
ERC1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$i, signerOrProvider);
};
return ERC1155__factory;
}(ContractFactory);
ERC1155__factory.bytecode = _bytecode;
ERC1155__factory.abi = _abi$i;
/* Autogenerated file. Do not edit manually. */
var _abi$j = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var ERC1155Burnable__factory = /*#__PURE__*/function () {
function ERC1155Burnable__factory() {}
ERC1155Burnable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$j);
};
ERC1155Burnable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$j, signerOrProvider);
};
return ERC1155Burnable__factory;
}();
ERC1155Burnable__factory.abi = _abi$j;
/* Autogenerated file. Do not edit manually. */
var _abi$k = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "paused",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var ERC1155Pausable__factory = /*#__PURE__*/function () {
function ERC1155Pausable__factory() {}
ERC1155Pausable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$k);
};
ERC1155Pausable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$k, signerOrProvider);
};
return ERC1155Pausable__factory;
}();
ERC1155Pausable__factory.abi = _abi$k;
/* Autogenerated file. Do not edit manually. */
var _abi$l = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var IERC1155MetadataURI__factory = /*#__PURE__*/function () {
function IERC1155MetadataURI__factory() {}
IERC1155MetadataURI__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$l);
};
IERC1155MetadataURI__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$l, signerOrProvider);
};
return IERC1155MetadataURI__factory;
}();
IERC1155MetadataURI__factory.abi = _abi$l;
/* Autogenerated file. Do not edit manually. */
var _abi$m = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var IERC1155__factory = /*#__PURE__*/function () {
function IERC1155__factory() {}
IERC1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$m);
};
IERC1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$m, signerOrProvider);
};
return IERC1155__factory;
}();
IERC1155__factory.abi = _abi$m;
/* Autogenerated file. Do not edit manually. */
var _abi$n = [{
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var IERC1155Receiver__factory = /*#__PURE__*/function () {
function IERC1155Receiver__factory() {}
IERC1155Receiver__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$n);
};
IERC1155Receiver__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$n, signerOrProvider);
};
return IERC1155Receiver__factory;
}();
IERC1155Receiver__factory.abi = _abi$n;
var _abi$o = [{
inputs: [{
internalType: "string",
name: "uri",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$1 = "0x60806040523480156200001157600080fd5b50604051620030d4380380620030d48339810160408190526200003491620002e7565b806200004081620000b7565b506005805460ff1916905562000058600033620000d0565b620000847f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000d0565b620000b07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d0565b5062000400565b8051620000cc9060049060208401906200022b565b5050565b620000cc8282620000ed82826200011960201b62000cb11760201c565b60008281526001602090815260409091206200011491839062000d4f620001b9821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000cc576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001753390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001d0836001600160a01b038416620001d9565b90505b92915050565b60008181526001830160205260408120546200022257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001d3565b506000620001d3565b8280546200023990620003c3565b90600052602060002090601f0160209004810192826200025d5760008555620002a8565b82601f106200027857805160ff1916838001178555620002a8565b82800160010185558215620002a8579182015b82811115620002a85782518255916020019190600101906200028b565b50620002b6929150620002ba565b5090565b5b80821115620002b65760008155600101620002bb565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620002fb57600080fd5b82516001600160401b03808211156200031357600080fd5b818501915085601f8301126200032857600080fd5b8151818111156200033d576200033d620002d1565b604051601f8201601f19908116603f01168101908382118183101715620003685762000368620002d1565b8160405282815288868487010111156200038157600080fd5b600093505b82841015620003a5578484018601518185018701529285019262000386565b82841115620003b75760008684830101525b98975050505050505050565b600181811c90821680620003d857607f821691505b60208210811415620003fa57634e487b7160e01b600052602260045260246000fd5b50919050565b612cc480620004106000396000f3fe608060405234801561001057600080fd5b50600436106101a25760003560e01c8063731133e9116100ee578063ca15c87311610097578063e63ab1e911610071578063e63ab1e9146103ac578063e985e9c5146103d3578063f242432a1461040f578063f5298aca1461042257600080fd5b8063ca15c8731461035f578063d539139314610372578063d547741f1461039957600080fd5b806391d14854116100c857806391d148541461030d578063a217fddf14610344578063a22cb4651461034c57600080fd5b8063731133e9146102c75780638456cb59146102da5780639010d07c146102e257600080fd5b80632f2ff15d116101505780634e1273f41161012a5780634e1273f4146102895780635c975abb146102a95780636b20c454146102b457600080fd5b80632f2ff15d1461025b57806336568abe1461026e5780633f4ba83a1461028157600080fd5b80631f7fdffa116101815780631f7fdffa14610210578063248a9ca3146102255780632eb2c2d61461024857600080fd5b8062fdd58e146101a757806301ffc9a7146101cd5780630e89341c146101f0575b600080fd5b6101ba6101b5366004612306565b610435565b6040519081526020015b60405180910390f35b6101e06101db366004612349565b6104e3565b60405190151581526020016101c4565b6102036101fe366004612366565b6104ee565b6040516101c491906123d7565b61022361021e366004612536565b610582565b005b6101ba610233366004612366565b60009081526020819052604090206001015490565b6102236102563660046125cf565b610630565b610223610269366004612679565b6106d2565b61022361027c366004612679565b6106fd565b610223610789565b61029c6102973660046126a5565b61082f565b6040516101c491906127ab565b60055460ff166101e0565b6102236102c23660046127be565b61096d565b6102236102d5366004612832565b6109f2565b610223610a9a565b6102f56102f0366004612887565b610b3e565b6040516001600160a01b0390911681526020016101c4565b6101e061031b366004612679565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101ba600081565b61022361035a3660046128a9565b610b5d565b6101ba61036d366004612366565b610b68565b6101ba7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102236103a7366004612679565b610b7f565b6101ba7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101e06103e13660046128e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61022361041d36600461290f565b610ba5565b610223610430366004612974565b610c2c565b60006001600160a01b0383166104b85760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006104dd82610d64565b6060600480546104fd906129a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610529906129a7565b80156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b50505050509050919050565b6105ac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361031b565b61061e5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016104af565b61062a84848484610da4565b50505050565b6001600160a01b03851633148061064c575061064c85336103e1565b6106be5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f766564000000000000000000000000000060648201526084016104af565b6106cb8585858585610f7a565b5050505050565b6000828152602081905260409020600101546106ee81336111e9565b6106f88383611267565b505050565b6001600160a01b038116331461077b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016104af565b6107858282611289565b5050565b6107b37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361031b565b6108255760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e7061757365000000000060648201526084016104af565b61082d6112ab565b565b606081518351146108a85760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016104af565b6000835167ffffffffffffffff8111156108c4576108c46123ea565b6040519080825280602002602001820160405280156108ed578160200160208202803683370190505b50905060005b845181101561096557610938858281518110610911576109116129e2565b602002602001015185838151811061092b5761092b6129e2565b6020026020010151610435565b82828151811061094a5761094a6129e2565b602090810291909101015261095e81612a0e565b90506108f3565b509392505050565b6001600160a01b038316331480610989575061098983336103e1565b6109e75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106f8838383611347565b610a1c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361031b565b610a8e5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016104af565b61062a84848484611591565b610ac47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361031b565b610b365760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f2070617573650000000000000060648201526084016104af565b61082d6116a3565b6000828152600160205260408120610b56908361172b565b9392505050565b610785338383611737565b60008181526001602052604081206104dd9061182c565b600082815260208190526040902060010154610b9b81336111e9565b6106f88383611289565b6001600160a01b038516331480610bc15750610bc185336103e1565b610c1f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106cb8585858585611836565b6001600160a01b038316331480610c485750610c4883336103e1565b610ca65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106f88383836119d8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610785576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b56836001600160a01b038416611b55565b60006001600160e01b03198216636cdb3d1360e11b1480610d9557506001600160e01b031982166303a24d0760e21b145b806104dd57506104dd82611ba4565b6001600160a01b038416610e045760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b8151835114610e665760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b33610e7681600087878787611bc9565b60005b8451811015610f1257838181518110610e9457610e946129e2565b602002602001015160026000878481518110610eb257610eb26129e2565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610efa9190612a29565b90915550819050610f0a81612a0e565b915050610e79565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610f63929190612a41565b60405180910390a46106cb81600087878787611bd7565b8151835114610fdc5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b6001600160a01b0384166110405760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b3361104f818787878787611bc9565b60005b845181101561117b57600085828151811061106f5761106f6129e2565b60200260200101519050600085838151811061108d5761108d6129e2565b60209081029190910181015160008481526002835260408082206001600160a01b038e1683529093529190912054909150818110156111215760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016104af565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611160908490612a29565b925050819055505050508061117490612a0e565b9050611052565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516111cb929190612a41565b60405180910390a46111e1818787878787611bd7565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661078557611225816001600160a01b03166014611d8c565b611230836020611d8c565b604051602001611241929190612a6f565b60408051601f198184030181529082905262461bcd60e51b82526104af916004016123d7565b6112718282610cb1565b60008281526001602052604090206106f89082610d4f565b6112938282611f35565b60008281526001602052604090206106f89082611fb4565b60055460ff166112fd5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104af565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166113a95760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b805182511461140b5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b600033905061142e81856000868660405180602001604052806000815250611bc9565b60005b835181101561153257600084828151811061144e5761144e6129e2565b60200260200101519050600084838151811061146c5761146c6129e2565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156114f95760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016104af565b60009283526002602090815260408085206001600160a01b038b168652909152909220910390558061152a81612a0e565b915050611431565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611583929190612a41565b60405180910390a450505050565b6001600160a01b0384166115f15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b336116118160008761160288611fc9565b61160b88611fc9565b87611bc9565b60008481526002602090815260408083206001600160a01b038916845290915281208054859290611643908490612a29565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46106cb81600087878787612014565b60055460ff16156116f65760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104af565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861132a3390565b6000610b56838361211f565b816001600160a01b0316836001600160a01b031614156117bf5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016104af565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006104dd825490565b6001600160a01b03841661189a5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b336118aa81878761160288611fc9565b60008481526002602090815260408083206001600160a01b038a168452909152902054838110156119305760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016104af565b60008581526002602090815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061196f908490612a29565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46119cf828888888888612014565b50505050505050565b6001600160a01b038316611a3a5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b33611a6981856000611a4b87611fc9565b611a5487611fc9565b60405180602001604052806000815250611bc9565b60008381526002602090815260408083206001600160a01b038816845290915290205482811015611ae85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016104af565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6000818152600183016020526040812054611b9c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104dd565b5060006104dd565b60006001600160e01b03198216635a05180f60e01b14806104dd57506104dd82612149565b6111e186868686868661217e565b6001600160a01b0384163b156111e15760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611c1b9089908990889088908890600401612af0565b602060405180830381600087803b158015611c3557600080fd5b505af1925050508015611c65575060408051601f3d908101601f19168201909252611c6291810190612b4e565b60015b611d1b57611c71612b6b565b806308c379a01415611cab5750611c86612b87565b80611c915750611cad565b8060405162461bcd60e51b81526004016104af91906123d7565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016104af565b6001600160e01b0319811663bc197c8160e01b146119cf5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016104af565b60606000611d9b836002612c11565b611da6906002612a29565b67ffffffffffffffff811115611dbe57611dbe6123ea565b6040519080825280601f01601f191660200182016040528015611de8576020820181803683370190505b509050600360fc1b81600081518110611e0357611e036129e2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e3257611e326129e2565b60200101906001600160f81b031916908160001a9053506000611e56846002612c11565b611e61906001612a29565b90505b6001811115611ee6577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ea257611ea26129e2565b1a60f81b828281518110611eb857611eb86129e2565b60200101906001600160f81b031916908160001a90535060049490941c93611edf81612c30565b9050611e64565b508315610b565760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104af565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610785576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610b56836001600160a01b0384166121f7565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612003576120036129e2565b602090810291909101015292915050565b6001600160a01b0384163b156111e15760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906120589089908990889088908890600401612c47565b602060405180830381600087803b15801561207257600080fd5b505af19250505080156120a2575060408051601f3d908101601f1916820190925261209f91810190612b4e565b60015b6120ae57611c71612b6b565b6001600160e01b0319811663f23a6e6160e01b146119cf5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016104af565b6000826000018281548110612136576121366129e2565b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b14806104dd57506301ffc9a760e01b6001600160e01b03198316146104dd565b60055460ff16156111e15760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c6520706175736564000000000000000000000000000000000000000060648201526084016104af565b600081815260018301602052604081205480156122e057600061221b600183612c8a565b855490915060009061222f90600190612c8a565b905081811461229457600086600001828154811061224f5761224f6129e2565b9060005260206000200154905080876000018481548110612272576122726129e2565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806122a5576122a5612ca1565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104dd565b60009150506104dd565b80356001600160a01b038116811461230157600080fd5b919050565b6000806040838503121561231957600080fd5b612322836122ea565b946020939093013593505050565b6001600160e01b03198116811461234657600080fd5b50565b60006020828403121561235b57600080fd5b8135610b5681612330565b60006020828403121561237857600080fd5b5035919050565b60005b8381101561239a578181015183820152602001612382565b8381111561062a5750506000910152565b600081518084526123c381602086016020860161237f565b601f01601f19169290920160200192915050565b602081526000610b5660208301846123ab565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612426576124266123ea565b6040525050565b600067ffffffffffffffff821115612447576124476123ea565b5060051b60200190565b600082601f83011261246257600080fd5b8135602061246f8261242d565b60405161247c8282612400565b83815260059390931b850182019282810191508684111561249c57600080fd5b8286015b848110156124b757803583529183019183016124a0565b509695505050505050565b600082601f8301126124d357600080fd5b813567ffffffffffffffff8111156124ed576124ed6123ea565b604051612504601f8301601f191660200182612400565b81815284602083860101111561251957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561254c57600080fd5b612555856122ea565b9350602085013567ffffffffffffffff8082111561257257600080fd5b61257e88838901612451565b9450604087013591508082111561259457600080fd5b6125a088838901612451565b935060608701359150808211156125b657600080fd5b506125c3878288016124c2565b91505092959194509250565b600080600080600060a086880312156125e757600080fd5b6125f0866122ea565b94506125fe602087016122ea565b9350604086013567ffffffffffffffff8082111561261b57600080fd5b61262789838a01612451565b9450606088013591508082111561263d57600080fd5b61264989838a01612451565b9350608088013591508082111561265f57600080fd5b5061266c888289016124c2565b9150509295509295909350565b6000806040838503121561268c57600080fd5b8235915061269c602084016122ea565b90509250929050565b600080604083850312156126b857600080fd5b823567ffffffffffffffff808211156126d057600080fd5b818501915085601f8301126126e457600080fd5b813560206126f18261242d565b6040516126fe8282612400565b83815260059390931b850182019282810191508984111561271e57600080fd5b948201945b8386101561274357612734866122ea565b82529482019490820190612723565b9650508601359250508082111561275957600080fd5b5061276685828601612451565b9150509250929050565b600081518084526020808501945080840160005b838110156127a057815187529582019590820190600101612784565b509495945050505050565b602081526000610b566020830184612770565b6000806000606084860312156127d357600080fd5b6127dc846122ea565b9250602084013567ffffffffffffffff808211156127f957600080fd5b61280587838801612451565b9350604086013591508082111561281b57600080fd5b5061282886828701612451565b9150509250925092565b6000806000806080858703121561284857600080fd5b612851856122ea565b93506020850135925060408501359150606085013567ffffffffffffffff81111561287b57600080fd5b6125c3878288016124c2565b6000806040838503121561289a57600080fd5b50508035926020909101359150565b600080604083850312156128bc57600080fd5b6128c5836122ea565b9150602083013580151581146128da57600080fd5b809150509250929050565b600080604083850312156128f857600080fd5b612901836122ea565b915061269c602084016122ea565b600080600080600060a0868803121561292757600080fd5b612930866122ea565b945061293e602087016122ea565b93506040860135925060608601359150608086013567ffffffffffffffff81111561296857600080fd5b61266c888289016124c2565b60008060006060848603121561298957600080fd5b612992846122ea565b95602085013595506040909401359392505050565b600181811c908216806129bb57607f821691505b602082108114156129dc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612a2257612a226129f8565b5060010190565b60008219821115612a3c57612a3c6129f8565b500190565b604081526000612a546040830185612770565b8281036020840152612a668185612770565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612aa781601785016020880161237f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612ae481602884016020880161237f565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a06040830152612b1c60a0830186612770565b8281036060840152612b2e8186612770565b90508281036080840152612b4281856123ab565b98975050505050505050565b600060208284031215612b6057600080fd5b8151610b5681612330565b600060033d1115612b845760046000803e5060005160e01c5b90565b600060443d1015612b955790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612bc557505050505090565b8285019150815181811115612bdd5750505050505090565b843d8701016020828501011115612bf75750505050505090565b612c0660208286010187612400565b509095945050505050565b6000816000190483118215151615612c2b57612c2b6129f8565b500290565b600081612c3f57612c3f6129f8565b506000190190565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612c7f60a08301846123ab565b979650505050505050565b600082821015612c9c57612c9c6129f8565b500390565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$1 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC1155PresetMinterPauser__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC1155PresetMinterPauser__factory, _ContractFactory);
function ERC1155PresetMinterPauser__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$1(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$o, _bytecode$1, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC1155PresetMinterPauser__factory.prototype;
_proto.deploy = function deploy(uri, overrides) {
return _ContractFactory.prototype.deploy.call(this, uri, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(uri, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, uri, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC1155PresetMinterPauser__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$o);
};
ERC1155PresetMinterPauser__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$o, signerOrProvider);
};
return ERC1155PresetMinterPauser__factory;
}(ContractFactory);
ERC1155PresetMinterPauser__factory.bytecode = _bytecode$1;
ERC1155PresetMinterPauser__factory.abi = _abi$o;
var _abi$p = [{
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$2 = "0x608060405234801561001057600080fd5b506103a9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a714610046578063bc197c811461006e578063f23a6e61146100a6575b600080fd5b6100596100543660046100fc565b6100c5565b60405190151581526020015b60405180910390f35b61008d61007c36600461028d565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610065565b61008d6100b4366004610337565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806100f657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561010e57600080fd5b81356001600160e01b03198116811461012657600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461015157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561019557610195610156565b604052919050565b600082601f8301126101ae57600080fd5b8135602067ffffffffffffffff8211156101ca576101ca610156565b8160051b6101d982820161016c565b92835284810182019282810190878511156101f357600080fd5b83870192505b84831015610212578235825291830191908301906101f9565b979650505050505050565b600082601f83011261022e57600080fd5b813567ffffffffffffffff81111561024857610248610156565b61025b601f8201601f191660200161016c565b81815284602083860101111561027057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156102a557600080fd5b6102ae8661012d565b94506102bc6020870161012d565b9350604086013567ffffffffffffffff808211156102d957600080fd5b6102e589838a0161019d565b945060608801359150808211156102fb57600080fd5b61030789838a0161019d565b9350608088013591508082111561031d57600080fd5b5061032a8882890161021d565b9150509295509295909350565b600080600080600060a0868803121561034f57600080fd5b6103588661012d565b94506103666020870161012d565b93506040860135925060608601359150608086013567ffffffffffffffff81111561039057600080fd5b61032a8882890161021d56fea164736f6c6343000809000a";
var isSuperArgs$2 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC1155Holder__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC1155Holder__factory, _ContractFactory);
function ERC1155Holder__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$2(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$p, _bytecode$2, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC1155Holder__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC1155Holder__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$p);
};
ERC1155Holder__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$p, signerOrProvider);
};
return ERC1155Holder__factory;
}(ContractFactory);
ERC1155Holder__factory.bytecode = _bytecode$2;
ERC1155Holder__factory.abi = _abi$p;
/* Autogenerated file. Do not edit manually. */
var _abi$q = [{
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var ERC1155Receiver__factory = /*#__PURE__*/function () {
function ERC1155Receiver__factory() {}
ERC1155Receiver__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$q);
};
ERC1155Receiver__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$q, signerOrProvider);
};
return ERC1155Receiver__factory;
}();
ERC1155Receiver__factory.abi = _abi$q;
var _abi$r = [{
inputs: [{
internalType: "string",
name: "name_",
type: "string"
}, {
internalType: "string",
name: "symbol_",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$3 = "0x60806040523480156200001157600080fd5b5060405162000ba938038062000ba98339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61091780620002926000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e3919061077d565b60405180910390f35b6100ff6100fa3660046107ee565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f366004610818565b61028e565b604051601281526020016100e3565b6100ff6101513660046107ee565b610352565b610113610164366004610854565b6001600160a01b031660009081526020819052604090205490565b6100d661038e565b6100ff6101953660046107ee565b61039d565b6100ff6101a83660046107ee565b61044e565b6101136101bb366004610876565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108a9565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b600061028533848461045b565b50600192915050565b600061029b84848461057f565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561033a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610347853385840361045b565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102859185906103899086906108e4565b61045b565b6060600480546101f5906108a9565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104375760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610331565b610444338585840361045b565b5060019392505050565b600061028533848461057f565b6001600160a01b0383166104bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610331565b6001600160a01b03821661051e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610331565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610331565b6001600160a01b03821661065d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610331565b6001600160a01b038316600090815260208190526040902054818110156106ec5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610331565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107239084906108e4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161076f91815260200190565b60405180910390a350505050565b600060208083528351808285015260005b818110156107aa5785810183015185820160400152820161078e565b818111156107bc576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146107e957600080fd5b919050565b6000806040838503121561080157600080fd5b61080a836107d2565b946020939093013593505050565b60008060006060848603121561082d57600080fd5b610836846107d2565b9250610844602085016107d2565b9150604084013590509250925092565b60006020828403121561086657600080fd5b61086f826107d2565b9392505050565b6000806040838503121561088957600080fd5b610892836107d2565b91506108a0602084016107d2565b90509250929050565b600181811c908216806108bd57607f821691505b602082108114156108de57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561090557634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c6343000809000a";
var isSuperArgs$3 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC20__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC20__factory, _ContractFactory);
function ERC20__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$3(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$r, _bytecode$3, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC20__factory.prototype;
_proto.deploy = function deploy(name_, symbol_, overrides) {
return _ContractFactory.prototype.deploy.call(this, name_, symbol_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(name_, symbol_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, name_, symbol_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC20__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$r);
};
ERC20__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$r, signerOrProvider);
};
return ERC20__factory;
}(ContractFactory);
ERC20__factory.bytecode = _bytecode$3;
ERC20__factory.abi = _abi$r;
/* Autogenerated file. Do not edit manually. */
var _abi$s = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var ERC20Permit__factory = /*#__PURE__*/function () {
function ERC20Permit__factory() {}
ERC20Permit__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$s);
};
ERC20Permit__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$s, signerOrProvider);
};
return ERC20Permit__factory;
}();
ERC20Permit__factory.abi = _abi$s;
/* Autogenerated file. Do not edit manually. */
var _abi$t = [{
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IERC20Permit__factory = /*#__PURE__*/function () {
function IERC20Permit__factory() {}
IERC20Permit__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$t);
};
IERC20Permit__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$t, signerOrProvider);
};
return IERC20Permit__factory;
}();
IERC20Permit__factory.abi = _abi$t;
/* Autogenerated file. Do not edit manually. */
var _abi$u = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burnFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var ERC20Burnable__factory = /*#__PURE__*/function () {
function ERC20Burnable__factory() {}
ERC20Burnable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$u);
};
ERC20Burnable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$u, signerOrProvider);
};
return ERC20Burnable__factory;
}();
ERC20Burnable__factory.abi = _abi$u;
/* Autogenerated file. Do not edit manually. */
var _abi$v = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var ERC20Pausable__factory = /*#__PURE__*/function () {
function ERC20Pausable__factory() {}
ERC20Pausable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$v);
};
ERC20Pausable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$v, signerOrProvider);
};
return ERC20Pausable__factory;
}();
ERC20Pausable__factory.abi = _abi$v;
/* Autogenerated file. Do not edit manually. */
var _abi$w = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "fromDelegate",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "toDelegate",
type: "address"
}],
name: "DelegateChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegate",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "previousBalance",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newBalance",
type: "uint256"
}],
name: "DelegateVotesChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint32",
name: "pos",
type: "uint32"
}],
name: "checkpoints",
outputs: [{
components: [{
internalType: "uint32",
name: "fromBlock",
type: "uint32"
}, {
internalType: "uint224",
name: "votes",
type: "uint224"
}],
internalType: "struct ERC20Votes.Checkpoint",
name: "",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}],
name: "delegate",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}, {
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "uint256",
name: "expiry",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "delegateBySig",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "delegates",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastTotalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "numCheckpoints",
outputs: [{
internalType: "uint32",
name: "",
type: "uint32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var ERC20Votes__factory = /*#__PURE__*/function () {
function ERC20Votes__factory() {}
ERC20Votes__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$w);
};
ERC20Votes__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$w, signerOrProvider);
};
return ERC20Votes__factory;
}();
ERC20Votes__factory.abi = _abi$w;
/* Autogenerated file. Do not edit manually. */
var _abi$x = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var IERC20Metadata__factory = /*#__PURE__*/function () {
function IERC20Metadata__factory() {}
IERC20Metadata__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$x);
};
IERC20Metadata__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$x, signerOrProvider);
};
return IERC20Metadata__factory;
}();
IERC20Metadata__factory.abi = _abi$x;
/* Autogenerated file. Do not edit manually. */
var _abi$y = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}];
var IERC20__factory = /*#__PURE__*/function () {
function IERC20__factory() {}
IERC20__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$y);
};
IERC20__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$y, signerOrProvider);
};
return IERC20__factory;
}();
IERC20__factory.abi = _abi$y;
var _abi$z = [{
inputs: [{
internalType: "string",
name: "name",
type: "string"
}, {
internalType: "string",
name: "symbol",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burnFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
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: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
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: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$4 = "0x60806040523480156200001157600080fd5b5060405162001ecb38038062001ecb8339810160408190526200003491620003b5565b8151829082906200004d90600590602085019062000242565b5080516200006390600690602084019062000242565b50506007805460ff19169055506200007d600033620000dd565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000dd565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000dd565b50506200045c565b620000e98282620000ed565b5050565b6200010482826200013060201b62000a9e1760201c565b60008281526001602090815260409091206200012b91839062000b3c620001d0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b038416620001f0565b90505b92915050565b60008181526001830160205260408120546200023957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b82805462000250906200041f565b90600052602060002090601f016020900481019282620002745760008555620002bf565b82601f106200028f57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002bf578251825591602001919060010190620002a2565b50620002cd929150620002d1565b5090565b5b80821115620002cd5760008155600101620002d2565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031057600080fd5b81516001600160401b03808211156200032d576200032d620002e8565b604051601f8301601f19908116603f01168101908282118183101715620003585762000358620002e8565b816040528381526020925086838588010111156200037557600080fd5b600091505b838210156200039957858201830151818301840152908201906200037a565b83821115620003ab5760008385830101525b9695505050505050565b60008060408385031215620003c957600080fd5b82516001600160401b0380821115620003e157600080fd5b620003ef86838701620002fe565b935060208501519150808211156200040657600080fd5b506200041585828601620002fe565b9150509250929050565b600181811c908216806200043457607f821691505b602082108114156200045657634e487b7160e01b600052602260045260246000fd5b50919050565b611a5f806200046c6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d5391393146103d3578063d547741f146103fa578063dd62ed3e1461040d578063e63ab1e91461044657600080fd5b8063a457c2d71461039a578063a9059cbb146103ad578063ca15c873146103c057600080fd5b80639010d07c116100d35780639010d07c1461032857806391d148541461035357806395d89b411461038a578063a217fddf1461039257600080fd5b806370a08231146102e457806379cc67901461030d5780638456cb591461032057600080fd5b8063313ce567116101665780633f4ba83a116101405780633f4ba83a146102ab57806340c10f19146102b357806342966c68146102c65780635c975abb146102d957600080fd5b8063313ce5671461027657806336568abe14610285578063395093511461029857600080fd5b806318160ddd116101a257806318160ddd1461021957806323b872dd1461022b578063248a9ca31461023e5780632f2ff15d1461026157600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063095ea7b314610206575b600080fd5b6101dc6101d7366004611722565b61046d565b60405190151581526020015b60405180910390f35b6101f9610498565b6040516101e89190611778565b6101dc6102143660046117c7565b61052a565b6004545b6040519081526020016101e8565b6101dc6102393660046117f1565b610540565b61021d61024c36600461182d565b60009081526020819052604090206001015490565b61027461026f366004611846565b610604565b005b604051601281526020016101e8565b610274610293366004611846565b61062f565b6101dc6102a63660046117c7565b6106bb565b6102746106f7565b6102746102c13660046117c7565b61079d565b6102746102d436600461182d565b610843565b60075460ff166101dc565b61021d6102f2366004611872565b6001600160a01b031660009081526002602052604090205490565b61027461031b3660046117c7565b610850565b6102746108d1565b61033b61033636600461188d565b610975565b6040516001600160a01b0390911681526020016101e8565b6101dc610361366004611846565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101f9610994565b61021d600081565b6101dc6103a83660046117c7565b6109a3565b6101dc6103bb3660046117c7565b610a54565b61021d6103ce36600461182d565b610a61565b61021d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610274610408366004611846565b610a78565b61021d61041b3660046118af565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b1480610492575061049282610b51565b92915050565b6060600580546104a7906118d9565b80601f01602080910402602001604051908101604052809291908181526020018280546104d3906118d9565b80156105205780601f106104f557610100808354040283529160200191610520565b820191906000526020600020905b81548152906001019060200180831161050357829003601f168201915b5050505050905090565b6000610537338484610b86565b50600192915050565b600061054d848484610caa565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156105ec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105f98533858403610b86565b506001949350505050565b6000828152602081905260409020600101546106208133610eb4565b61062a8383610f32565b505050565b6001600160a01b03811633146106ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016105e3565b6106b78282610f54565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916105379185906106f290869061192a565b610b86565b6107217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b6107935760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105e3565b61079b610f76565b565b6107c77f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610361565b6108395760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f7665206d696e74657220726f6c6520746f206d696e740000000000000000000060648201526084016105e3565b6106b78282611012565b61084d33826110fd565b50565b600061085c833361041b565b9050818110156108ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105e3565b6108c78333848403610b86565b61062a83836110fd565b6108fb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610361565b61096d5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105e3565b61079b611257565b600082815260016020526040812061098d90836112df565b9392505050565b6060600680546104a7906118d9565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610a3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105e3565b610a4a3385858403610b86565b5060019392505050565b6000610537338484610caa565b6000818152600160205260408120610492906112eb565b600082815260208190526040902060010154610a948133610eb4565b61062a8383610f54565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166106b7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610af83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061098d836001600160a01b0384166112f5565b60006001600160e01b03198216637965db0b60e01b148061049257506301ffc9a760e01b6001600160e01b0319831614610492565b6001600160a01b038316610be85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e3565b6001600160a01b038216610c495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105e3565b6001600160a01b038216610d885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e3565b610d93838383611344565b6001600160a01b03831660009081526002602052604090205481811015610e225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105e3565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610e5990849061192a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea591815260200190565b60405180910390a35b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166106b757610ef0816001600160a01b0316601461134f565b610efb83602061134f565b604051602001610f0c929190611942565b60408051601f198184030181529082905262461bcd60e51b82526105e391600401611778565b610f3c8282610a9e565b600082815260016020526040902061062a9082610b3c565b610f5e82826114f8565b600082815260016020526040902061062a9082611577565b60075460ff16610fc85760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105e3565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166110685760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e3565b61107460008383611344565b8060046000828254611086919061192a565b90915550506001600160a01b038216600090815260026020526040812080548392906110b390849061192a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661115d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e3565b61116982600083611344565b6001600160a01b038216600090815260026020526040902054818110156111dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e3565b6001600160a01b038316600090815260026020526040812083830390556004805484929061120c9084906119c3565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156112aa5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105e3565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ff53390565b600061098d838361158c565b6000610492825490565b600081815260018301602052604081205461133c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610492565b506000610492565b61062a8383836115b6565b6060600061135e8360026119da565b61136990600261192a565b67ffffffffffffffff811115611381576113816119f9565b6040519080825280601f01601f1916602001820160405280156113ab576020820181803683370190505b509050600360fc1b816000815181106113c6576113c6611a0f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106113f5576113f5611a0f565b60200101906001600160f81b031916908160001a90535060006114198460026119da565b61142490600161192a565b90505b60018111156114a9577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061146557611465611a0f565b1a60f81b82828151811061147b5761147b611a0f565b60200101906001600160f81b031916908160001a90535060049490941c936114a281611a25565b9050611427565b50831561098d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105e3565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156106b7576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061098d836001600160a01b03841661162f565b60008260000182815481106115a3576115a3611a0f565b9060005260206000200154905092915050565b60075460ff161561062a5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e7366657220776860448201527f696c65207061757365640000000000000000000000000000000000000000000060648201526084016105e3565b600081815260018301602052604081205480156117185760006116536001836119c3565b8554909150600090611667906001906119c3565b90508181146116cc57600086600001828154811061168757611687611a0f565b90600052602060002001549050808760000184815481106116aa576116aa611a0f565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806116dd576116dd611a3c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610492565b6000915050610492565b60006020828403121561173457600080fd5b81356001600160e01b03198116811461098d57600080fd5b60005b8381101561176757818101518382015260200161174f565b83811115610eae5750506000910152565b602081526000825180602084015261179781604085016020870161174c565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146117c257600080fd5b919050565b600080604083850312156117da57600080fd5b6117e3836117ab565b946020939093013593505050565b60008060006060848603121561180657600080fd5b61180f846117ab565b925061181d602085016117ab565b9150604084013590509250925092565b60006020828403121561183f57600080fd5b5035919050565b6000806040838503121561185957600080fd5b82359150611869602084016117ab565b90509250929050565b60006020828403121561188457600080fd5b61098d826117ab565b600080604083850312156118a057600080fd5b50508035926020909101359150565b600080604083850312156118c257600080fd5b6118cb836117ab565b9150611869602084016117ab565b600181811c908216806118ed57607f821691505b6020821081141561190e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561193d5761193d611914565b500190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161197a81601785016020880161174c565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516119b781602884016020880161174c565b01602801949350505050565b6000828210156119d5576119d5611914565b500390565b60008160001904831182151516156119f4576119f4611914565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081611a3457611a34611914565b506000190190565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$4 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC20PresetMinterPauser__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC20PresetMinterPauser__factory, _ContractFactory);
function ERC20PresetMinterPauser__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$4(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$z, _bytecode$4, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC20PresetMinterPauser__factory.prototype;
_proto.deploy = function deploy(name, symbol, overrides) {
return _ContractFactory.prototype.deploy.call(this, name, symbol, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(name, symbol, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, name, symbol, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC20PresetMinterPauser__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$z);
};
ERC20PresetMinterPauser__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$z, signerOrProvider);
};
return ERC20PresetMinterPauser__factory;
}(ContractFactory);
ERC20PresetMinterPauser__factory.bytecode = _bytecode$4;
ERC20PresetMinterPauser__factory.abi = _abi$z;
var _abi$A = [{
inputs: [{
internalType: "string",
name: "name_",
type: "string"
}, {
internalType: "string",
name: "symbol_",
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "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: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "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: "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: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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"
}];
var _bytecode$5 = "0x60806040523480156200001157600080fd5b5060405162001607380380620016078339810160408190526200003491620001db565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61137580620002926000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101c3578063b88d4fde146101d6578063c87b56dd146101e9578063e985e9c5146101fc57600080fd5b80636352211e1461018757806370a082311461019a57806395d89b41146101bb57600080fd5b8063095ea7b3116100bd578063095ea7b31461014c57806323b872dd1461016157806342842e0e1461017457600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004610f52565b610238565b60405190151581526020015b60405180910390f35b61011461028a565b6040516101039190610fc7565b61013461012f366004610fda565b61031c565b6040516001600160a01b039091168152602001610103565b61015f61015a36600461100f565b6103b6565b005b61015f61016f366004611039565b6104cc565b61015f610182366004611039565b610553565b610134610195366004610fda565b61056e565b6101ad6101a8366004611075565b6105f9565b604051908152602001610103565b610114610693565b61015f6101d1366004611090565b6106a2565b61015f6101e43660046110e2565b6106b1565b6101146101f7366004610fda565b61073f565b6100f761020a3660046111be565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061026957506001600160e01b03198216635b5e139f60e01b145b8061028457506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060008054610299906111f1565b80601f01602080910402602001604051908101604052809291908181526020018280546102c5906111f1565b80156103125780601f106102e757610100808354040283529160200191610312565b820191906000526020600020905b8154815290600101906020018083116102f557829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661039a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103c18261056e565b9050806001600160a01b0316836001600160a01b0316141561042f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610391565b336001600160a01b038216148061044b575061044b813361020a565b6104bd5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610391565b6104c78383610835565b505050565b6104d633826108b0565b6105485760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610391565b6104c78383836109a7565b6104c7838383604051806020016040528060008152506106b1565b6000818152600260205260408120546001600160a01b0316806102845760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610391565b60006001600160a01b0382166106775760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610391565b506001600160a01b031660009081526003602052604090205490565b606060018054610299906111f1565b6106ad338383610b68565b5050565b6106bb33836108b0565b61072d5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610391565b61073984848484610c37565b50505050565b6000818152600260205260409020546060906001600160a01b03166107cc5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610391565b60006107e360408051602081019091526000815290565b90506000815111610803576040518060200160405280600081525061082e565b8061080d84610cc0565b60405160200161081e92919061122c565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915581906108778261056e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166109295760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610391565b60006109348361056e565b9050806001600160a01b0316846001600160a01b0316148061096f5750836001600160a01b03166109648461031c565b6001600160a01b0316145b8061099f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109ba8261056e565b6001600160a01b031614610a365760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610391565b6001600160a01b038216610a985760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610391565b610aa3600082610835565b6001600160a01b0383166000908152600360205260408120805460019290610acc908490611271565b90915550506001600160a01b0382166000908152600360205260408120805460019290610afa908490611288565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03161415610bca5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610391565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610c428484846109a7565b610c4e84848484610dd6565b6107395760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610391565b606081610ce45750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610d0e5780610cf8816112a0565b9150610d079050600a836112d1565b9150610ce8565b60008167ffffffffffffffff811115610d2957610d296110cc565b6040519080825280601f01601f191660200182016040528015610d53576020820181803683370190505b5090505b841561099f57610d68600183611271565b9150610d75600a866112e5565b610d80906030611288565b60f81b818381518110610d9557610d956112f9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610dcf600a866112d1565b9450610d57565b60006001600160a01b0384163b15610f2e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e1a90339089908890889060040161130f565b602060405180830381600087803b158015610e3457600080fd5b505af1925050508015610e64575060408051601f3d908101601f19168201909252610e619181019061134b565b60015b610f14573d808015610e92576040519150601f19603f3d011682016040523d82523d6000602084013e610e97565b606091505b508051610f0c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610391565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061099f565b506001949350505050565b6001600160e01b031981168114610f4f57600080fd5b50565b600060208284031215610f6457600080fd5b813561082e81610f39565b60005b83811015610f8a578181015183820152602001610f72565b838111156107395750506000910152565b60008151808452610fb3816020860160208601610f6f565b601f01601f19169290920160200192915050565b60208152600061082e6020830184610f9b565b600060208284031215610fec57600080fd5b5035919050565b80356001600160a01b038116811461100a57600080fd5b919050565b6000806040838503121561102257600080fd5b61102b83610ff3565b946020939093013593505050565b60008060006060848603121561104e57600080fd5b61105784610ff3565b925061106560208501610ff3565b9150604084013590509250925092565b60006020828403121561108757600080fd5b61082e82610ff3565b600080604083850312156110a357600080fd5b6110ac83610ff3565b9150602083013580151581146110c157600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156110f857600080fd5b61110185610ff3565b935061110f60208601610ff3565b925060408501359150606085013567ffffffffffffffff8082111561113357600080fd5b818701915087601f83011261114757600080fd5b813581811115611159576111596110cc565b604051601f8201601f19908116603f01168101908382118183101715611181576111816110cc565b816040528281528a602084870101111561119a57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156111d157600080fd5b6111da83610ff3565b91506111e860208401610ff3565b90509250929050565b600181811c9082168061120557607f821691505b6020821081141561122657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161123e818460208801610f6f565b835190830190611252818360208801610f6f565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156112835761128361125b565b500390565b6000821982111561129b5761129b61125b565b500190565b60006000198214156112b4576112b461125b565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826112e0576112e06112bb565b500490565b6000826112f4576112f46112bb565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b038087168352808616602084015250836040830152608060608301526113416080830184610f9b565b9695505050505050565b60006020828403121561135d57600080fd5b815161082e81610f3956fea164736f6c6343000809000a";
var isSuperArgs$5 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC721__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC721__factory, _ContractFactory);
function ERC721__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$5(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$A, _bytecode$5, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC721__factory.prototype;
_proto.deploy = function deploy(name_, symbol_, overrides) {
return _ContractFactory.prototype.deploy.call(this, name_, symbol_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(name_, symbol_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, name_, symbol_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$A);
};
ERC721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$A, signerOrProvider);
};
return ERC721__factory;
}(ContractFactory);
ERC721__factory.bytecode = _bytecode$5;
ERC721__factory.abi = _abi$A;
/* Autogenerated file. Do not edit manually. */
var _abi$B = [{
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "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: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "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: "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: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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"
}];
var ERC721Burnable__factory = /*#__PURE__*/function () {
function ERC721Burnable__factory() {}
ERC721Burnable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$B);
};
ERC721Burnable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$B, signerOrProvider);
};
return ERC721Burnable__factory;
}();
ERC721Burnable__factory.abi = _abi$B;
/* Autogenerated file. Do not edit manually. */
var _abi$C = [{
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "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: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "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: "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"
}];
var ERC721Enumerable__factory = /*#__PURE__*/function () {
function ERC721Enumerable__factory() {}
ERC721Enumerable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$C);
};
ERC721Enumerable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$C, signerOrProvider);
};
return ERC721Enumerable__factory;
}();
ERC721Enumerable__factory.abi = _abi$C;
/* Autogenerated file. Do not edit manually. */
var _abi$D = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "approved",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "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: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "paused",
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: "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: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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"
}];
var ERC721Pausable__factory = /*#__PURE__*/function () {
function ERC721Pausable__factory() {}
ERC721Pausable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$D);
};
ERC721Pausable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$D, signerOrProvider);
};
return ERC721Pausable__factory;
}();
ERC721Pausable__factory.abi = _abi$D;
/* Autogenerated file. Do not edit manually. */
var _abi$E = [{
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "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: "balance",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "getApproved",
outputs: [{
internalType: "address",
name: "operator",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
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: "tokenId",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "transferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IERC721Enumerable__factory = /*#__PURE__*/function () {
function IERC721Enumerable__factory() {}
IERC721Enumerable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$E);
};
IERC721Enumerable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$E, signerOrProvider);
};
return IERC721Enumerable__factory;
}();
IERC721Enumerable__factory.abi = _abi$E;
/* Autogenerated file. Do not edit manually. */
var _abi$F = [{
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "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: "balance",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "getApproved",
outputs: [{
internalType: "address",
name: "operator",
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: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
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: "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: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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"
}];
var IERC721Metadata__factory = /*#__PURE__*/function () {
function IERC721Metadata__factory() {}
IERC721Metadata__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$F);
};
IERC721Metadata__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$F, signerOrProvider);
};
return IERC721Metadata__factory;
}();
IERC721Metadata__factory.abi = _abi$F;
/* Autogenerated file. Do not edit manually. */
var _abi$G = [{
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: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
inputs: [{
internalType: "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: "balance",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "getApproved",
outputs: [{
internalType: "address",
name: "operator",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
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: "transferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IERC721__factory = /*#__PURE__*/function () {
function IERC721__factory() {}
IERC721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$G);
};
IERC721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$G, signerOrProvider);
};
return IERC721__factory;
}();
IERC721__factory.abi = _abi$G;
/* Autogenerated file. Do not edit manually. */
var _abi$H = [{
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}];
var IERC721Receiver__factory = /*#__PURE__*/function () {
function IERC721Receiver__factory() {}
IERC721Receiver__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$H);
};
IERC721Receiver__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$H, signerOrProvider);
};
return IERC721Receiver__factory;
}();
IERC721Receiver__factory.abi = _abi$H;
var _abi$I = [{
inputs: [{
internalType: "string",
name: "name",
type: "string"
}, {
internalType: "string",
name: "symbol",
type: "string"
}, {
internalType: "string",
name: "baseTokenURI",
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: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "getApproved",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "safeTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "bytes",
name: "_data",
type: "bytes"
}],
name: "safeTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "operator",
type: "address"
}, {
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "setApprovalForAll",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "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: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$6 = "0x60806040523480156200001157600080fd5b5060405162002c1038038062002c108339810160408190526200003491620003cc565b8251839083906200004d90600290602085019062000259565b5080516200006390600390602084019062000259565b5050600c805460ff191690555080516200008590600e90602084019062000259565b5062000093600033620000f4565b620000bf7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000f4565b620000eb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000f4565b5050506200049a565b62000100828262000104565b5050565b6200011b82826200014760201b62000f4c1760201c565b60008281526001602090815260409091206200014291839062000fea620001e7821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000100576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001a33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001fe836001600160a01b03841662000207565b90505b92915050565b6000818152600183016020526040812054620002505750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000201565b50600062000201565b82805462000267906200045d565b90600052602060002090601f0160209004810192826200028b5760008555620002d6565b82601f10620002a657805160ff1916838001178555620002d6565b82800160010185558215620002d6579182015b82811115620002d6578251825591602001919060010190620002b9565b50620002e4929150620002e8565b5090565b5b80821115620002e45760008155600101620002e9565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200032757600080fd5b81516001600160401b0380821115620003445762000344620002ff565b604051601f8301601f19908116603f011681019082821181831017156200036f576200036f620002ff565b816040528381526020925086838588010111156200038c57600080fd5b600091505b83821015620003b0578582018301518183018401529082019062000391565b83821115620003c25760008385830101525b9695505050505050565b600080600060608486031215620003e257600080fd5b83516001600160401b0380821115620003fa57600080fd5b620004088783880162000315565b945060208601519150808211156200041f57600080fd5b6200042d8783880162000315565b935060408601519150808211156200044457600080fd5b50620004538682870162000315565b9150509250925092565b600181811c908216806200047257607f821691505b602082108114156200049457634e487b7160e01b600052602260045260246000fd5b50919050565b61276680620004aa6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a22cb465116100a2578063d539139311610071578063d53913931461041b578063d547741f14610442578063e63ab1e914610455578063e985e9c51461047c57600080fd5b8063a22cb465146103cf578063b88d4fde146103e2578063c87b56dd146103f5578063ca15c8731461040857600080fd5b80639010d07c116100de5780639010d07c1461037557806391d148541461038857806395d89b41146103bf578063a217fddf146103c757600080fd5b80636352211e146103345780636a6278421461034757806370a082311461035a5780638456cb591461036d57600080fd5b80632f2ff15d1161018757806342842e0e1161015657806342842e0e146102f057806342966c68146103035780634f6ccce7146103165780635c975abb1461032957600080fd5b80632f2ff15d146102af5780632f745c59146102c257806336568abe146102d55780633f4ba83a146102e857600080fd5b8063095ea7b3116101c3578063095ea7b31461025257806318160ddd1461026757806323b872dd14610279578063248a9ca31461028c57600080fd5b806301ffc9a7146101ea57806306fdde0314610212578063081812fc14610227575b600080fd5b6101fd6101f8366004612231565b6104b8565b60405190151581526020015b60405180910390f35b61021a6104c9565b60405161020991906122a6565b61023a6102353660046122b9565b61055b565b6040516001600160a01b039091168152602001610209565b6102656102603660046122ee565b6105f5565b005b600a545b604051908152602001610209565b610265610287366004612318565b61070b565b61026b61029a3660046122b9565b60009081526020819052604090206001015490565b6102656102bd366004612354565b610793565b61026b6102d03660046122ee565b6107b9565b6102656102e3366004612354565b610861565b6102656108ed565b6102656102fe366004612318565b610995565b6102656103113660046122b9565b6109b0565b61026b6103243660046122b9565b610a37565b600c5460ff166101fd565b61023a6103423660046122b9565b610adb565b610265610355366004612380565b610b66565b61026b610368366004612380565b610c22565b610265610cbc565b61023a61038336600461239b565b610d60565b6101fd610396366004612354565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61021a610d7f565b61026b600081565b6102656103dd3660046123bd565b610d8e565b6102656103f036600461240f565b610d99565b61021a6104033660046122b9565b610e27565b61026b6104163660046122b9565b610f0f565b61026b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610265610450366004612354565b610f26565b61026b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd61048a3660046124eb565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b60006104c382610fff565b92915050565b6060600280546104d890612515565b80601f016020809104026020016040519081016040528092919081815260200182805461050490612515565b80156105515780601f1061052657610100808354040283529160200191610551565b820191906000526020600020905b81548152906001019060200180831161053457829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166105d95760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061060082610adb565b9050806001600160a01b0316836001600160a01b0316141561066e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016105d0565b336001600160a01b038216148061068a575061068a813361048a565b6106fc5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016105d0565b6107068383611024565b505050565b610716335b82611092565b6107885760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016105d0565b610706838383611189565b6000828152602081905260409020600101546107af8133611348565b61070683836113c6565b60006107c483610c22565b82106108385760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016105d0565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b6001600160a01b03811633146108df5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016105d0565b6108e982826113e8565b5050565b6109177f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b61098b576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016105d0565b61099361140a565b565b61070683838360405180602001604052806000815250610d99565b6109b933610710565b610a2b5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f7665640000000000000000000000000000000060648201526084016105d0565b610a34816114a6565b50565b6000610a42600a5490565b8210610ab65760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016105d0565b600a8281548110610ac957610ac9612550565b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b0316806104c35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016105d0565b610b907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610396565b610c025760405162461bcd60e51b815260206004820152603d60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d7573742068617665206d696e74657220726f6c6520746f206d696e7400000060648201526084016105d0565b610c1481610c0f600d5490565b61154d565b610a34600d80546001019055565b60006001600160a01b038216610ca05760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016105d0565b506001600160a01b031660009081526005602052604090205490565b610ce67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610396565b610d585760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016105d0565b61099361169b565b6000828152600160205260408120610d789083611723565b9392505050565b6060600380546104d890612515565b6108e933838361172f565b610da33383611092565b610e155760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016105d0565b610e21848484846117fe565b50505050565b6000818152600460205260409020546060906001600160a01b0316610eb45760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016105d0565b6000610ebe611887565b90506000815111610ede5760405180602001604052806000815250610d78565b80610ee884611896565b604051602001610ef9929190612566565b6040516020818303038152906040529392505050565b60008181526001602052604081206104c390611994565b600082815260208190526040902060010154610f428133611348565b61070683836113e8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108e9576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610fa63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610d78836001600160a01b03841661199e565b60006001600160e01b0319821663780e9d6360e01b14806104c357506104c3826119ed565b600081815260066020526040902080546001600160a01b0319166001600160a01b038416908117909155819061105982610adb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b031661110b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105d0565b600061111683610adb565b9050806001600160a01b0316846001600160a01b031614806111515750836001600160a01b03166111468461055b565b6001600160a01b0316145b8061118157506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661119c82610adb565b6001600160a01b0316146112185760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016105d0565b6001600160a01b03821661127a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105d0565b611285838383611a2d565b611290600082611024565b6001600160a01b03831660009081526005602052604081208054600192906112b99084906125ab565b90915550506001600160a01b03821660009081526005602052604081208054600192906112e79084906125c2565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166108e957611384816001600160a01b03166014611a38565b61138f836020611a38565b6040516020016113a09291906125da565b60408051601f198184030181529082905262461bcd60e51b82526105d0916004016122a6565b6113d08282610f4c565b60008281526001602052604090206107069082610fea565b6113f28282611be1565b60008281526001602052604090206107069082611c60565b600c5460ff1661145c5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105d0565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006114b182610adb565b90506114bf81600084611a2d565b6114ca600083611024565b6001600160a01b03811660009081526005602052604081208054600192906114f39084906125ab565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0382166115a35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105d0565b6000818152600460205260409020546001600160a01b0316156116085760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105d0565b61161460008383611a2d565b6001600160a01b038216600090815260056020526040812080546001929061163d9084906125c2565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600c5460ff16156116ee5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105d0565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114893390565b6000610d788383611c75565b816001600160a01b0316836001600160a01b031614156117915760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105d0565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611809848484611189565b61181584848484611c9f565b610e215760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016105d0565b6060600e80546104d890612515565b6060816118ba5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156118e457806118ce8161265b565b91506118dd9050600a8361268c565b91506118be565b60008167ffffffffffffffff8111156118ff576118ff6123f9565b6040519080825280601f01601f191660200182016040528015611929576020820181803683370190505b5090505b84156111815761193e6001836125ab565b915061194b600a866126a0565b6119569060306125c2565b60f81b81838151811061196b5761196b612550565b60200101906001600160f81b031916908160001a90535061198d600a8661268c565b945061192d565b60006104c3825490565b60008181526001830160205260408120546119e5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104c3565b5060006104c3565b60006001600160e01b031982166380ac58cd60e01b1480611a1e57506001600160e01b03198216635b5e139f60e01b145b806104c357506104c382611e02565b610706838383611e27565b60606000611a478360026126b4565b611a529060026125c2565b67ffffffffffffffff811115611a6a57611a6a6123f9565b6040519080825280601f01601f191660200182016040528015611a94576020820181803683370190505b509050600360fc1b81600081518110611aaf57611aaf612550565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ade57611ade612550565b60200101906001600160f81b031916908160001a9053506000611b028460026126b4565b611b0d9060016125c2565b90505b6001811115611b92577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611b4e57611b4e612550565b1a60f81b828281518110611b6457611b64612550565b60200101906001600160f81b031916908160001a90535060049490941c93611b8b816126d3565b9050611b10565b508315610d785760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d0565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156108e9576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610d78836001600160a01b038416611eab565b6000826000018281548110611c8c57611c8c612550565b9060005260206000200154905092915050565b60006001600160a01b0384163b15611df757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611ce39033908990889088906004016126ea565b602060405180830381600087803b158015611cfd57600080fd5b505af1925050508015611d2d575060408051601f3d908101601f19168201909252611d2a91810190612726565b60015b611ddd573d808015611d5b576040519150601f19603f3d011682016040523d82523d6000602084013e611d60565b606091505b508051611dd55760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016105d0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611181565b506001949350505050565b60006001600160e01b03198216635a05180f60e01b14806104c357506104c382611f9e565b611e32838383611fd3565b600c5460ff16156107065760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c652070617573656400000000000000000000000000000000000000000060648201526084016105d0565b60008181526001830160205260408120548015611f94576000611ecf6001836125ab565b8554909150600090611ee3906001906125ab565b9050818114611f48576000866000018281548110611f0357611f03612550565b9060005260206000200154905080876000018481548110611f2657611f26612550565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611f5957611f59612743565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104c3565b60009150506104c3565b60006001600160e01b03198216637965db0b60e01b14806104c357506301ffc9a760e01b6001600160e01b03198316146104c3565b6001600160a01b03831661202e5761202981600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b612051565b816001600160a01b0316836001600160a01b03161461205157612051838261208b565b6001600160a01b0382166120685761070681612128565b826001600160a01b0316826001600160a01b0316146107065761070682826121d7565b6000600161209884610c22565b6120a291906125ab565b6000838152600960205260409020549091508082146120f5576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a5460009061213a906001906125ab565b6000838152600b6020526040812054600a805493945090928490811061216257612162612550565b9060005260206000200154905080600a838154811061218357612183612550565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a8054806121bb576121bb612743565b6001900381819060005260206000200160009055905550505050565b60006121e283610c22565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b6001600160e01b031981168114610a3457600080fd5b60006020828403121561224357600080fd5b8135610d788161221b565b60005b83811015612269578181015183820152602001612251565b83811115610e215750506000910152565b6000815180845261229281602086016020860161224e565b601f01601f19169290920160200192915050565b602081526000610d78602083018461227a565b6000602082840312156122cb57600080fd5b5035919050565b80356001600160a01b03811681146122e957600080fd5b919050565b6000806040838503121561230157600080fd5b61230a836122d2565b946020939093013593505050565b60008060006060848603121561232d57600080fd5b612336846122d2565b9250612344602085016122d2565b9150604084013590509250925092565b6000806040838503121561236757600080fd5b82359150612377602084016122d2565b90509250929050565b60006020828403121561239257600080fd5b610d78826122d2565b600080604083850312156123ae57600080fd5b50508035926020909101359150565b600080604083850312156123d057600080fd5b6123d9836122d2565b9150602083013580151581146123ee57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561242557600080fd5b61242e856122d2565b935061243c602086016122d2565b925060408501359150606085013567ffffffffffffffff8082111561246057600080fd5b818701915087601f83011261247457600080fd5b813581811115612486576124866123f9565b604051601f8201601f19908116603f011681019083821181831017156124ae576124ae6123f9565b816040528281528a60208487010111156124c757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156124fe57600080fd5b612507836122d2565b9150612377602084016122d2565b600181811c9082168061252957607f821691505b6020821081141561254a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000835161257881846020880161224e565b83519083019061258c81836020880161224e565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156125bd576125bd612595565b500390565b600082198211156125d5576125d5612595565b500190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161261281601785016020880161224e565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161264f81602884016020880161224e565b01602801949350505050565b600060001982141561266f5761266f612595565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261269b5761269b612676565b500490565b6000826126af576126af612676565b500690565b60008160001904831182151516156126ce576126ce612595565b500290565b6000816126e2576126e2612595565b506000190190565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261271c608083018461227a565b9695505050505050565b60006020828403121561273857600080fd5b8151610d788161221b565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$6 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC721PresetMinterPauserAutoId__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC721PresetMinterPauserAutoId__factory, _ContractFactory);
function ERC721PresetMinterPauserAutoId__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$6(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$I, _bytecode$6, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC721PresetMinterPauserAutoId__factory.prototype;
_proto.deploy = function deploy(name, symbol, baseTokenURI, overrides) {
return _ContractFactory.prototype.deploy.call(this, name, symbol, baseTokenURI, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(name, symbol, baseTokenURI, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, name, symbol, baseTokenURI, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC721PresetMinterPauserAutoId__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$I);
};
ERC721PresetMinterPauserAutoId__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$I, signerOrProvider);
};
return ERC721PresetMinterPauserAutoId__factory;
}(ContractFactory);
ERC721PresetMinterPauserAutoId__factory.bytecode = _bytecode$6;
ERC721PresetMinterPauserAutoId__factory.abi = _abi$I;
var _abi$J = [{
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$7 = "0x608060405234801561001057600080fd5b506101ab806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063150b7a0214610030575b600080fd5b61004e61003e3660046100c2565b630a85bd0160e11b949350505050565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b803573ffffffffffffffffffffffffffffffffffffffff811681146100a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156100d857600080fd5b6100e185610083565b93506100ef60208601610083565b925060408501359150606085013567ffffffffffffffff8082111561011357600080fd5b818701915087601f83011261012757600080fd5b813581811115610139576101396100ac565b604051601f8201601f19908116603f01168101908382118183101715610161576101616100ac565b816040528281528a602084870101111561017a57600080fd5b8260208601602083013760006020848301015280955050505050509295919450925056fea164736f6c6343000809000a";
var isSuperArgs$7 = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC721Holder__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC721Holder__factory, _ContractFactory);
function ERC721Holder__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$7(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$J, _bytecode$7, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC721Holder__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC721Holder__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$J);
};
ERC721Holder__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$J, signerOrProvider);
};
return ERC721Holder__factory;
}(ContractFactory);
ERC721Holder__factory.bytecode = _bytecode$7;
ERC721Holder__factory.abi = _abi$J;
/* Autogenerated file. Do not edit manually. */
var _abi$K = [{
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var ERC165__factory = /*#__PURE__*/function () {
function ERC165__factory() {}
ERC165__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$K);
};
ERC165__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$K, signerOrProvider);
};
return ERC165__factory;
}();
ERC165__factory.abi = _abi$K;
/* Autogenerated file. Do not edit manually. */
var _abi$L = [{
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var IERC165__factory = /*#__PURE__*/function () {
function IERC165__factory() {}
IERC165__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$L);
};
IERC165__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$L, signerOrProvider);
};
return IERC165__factory;
}();
IERC165__factory.abi = _abi$L;
/* Autogenerated file. Do not edit manually. */
var _abi$M = [{
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}];
var Multicall__factory = /*#__PURE__*/function () {
function Multicall__factory() {}
Multicall__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$M);
};
Multicall__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$M, signerOrProvider);
};
return Multicall__factory;
}();
Multicall__factory.abi = _abi$M;
var _abi$N = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "redeemer",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "nftTokenId",
type: "uint256"
}, {
indexed: true,
internalType: "uint256",
name: "accessNftId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "AccessNFTRedeemed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "nftIds",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "nftURIs",
type: "string[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "acessNftIds",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "accessNftURIs",
type: "string[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "nftSupplies",
type: "uint256[]"
}],
name: "AccessNFTsCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "isTransferable",
type: "bool"
}],
name: "AccessTransferabilityUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "accessNftId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "lastTimeToRedeem",
type: "uint256"
}],
name: "LastRedeemTimeUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "_contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "accessNftIsTransferable",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string[]",
name: "_nftURIs",
type: "string[]"
}, {
internalType: "string[]",
name: "_accessNftURIs",
type: "string[]"
}, {
internalType: "uint256[]",
name: "_nftSupplies",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "createAccessTokens",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "isRedeemable",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "lastTimeToRedeem",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nextTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_amount",
type: "uint256"
}],
name: "redeemToken",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_isTransferable",
type: "bool"
}],
name: "setAccessNftTransferability",
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: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilRedeem",
type: "uint256"
}],
name: "setLastTimeToRedeem",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "tokenState",
outputs: [{
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "bool",
name: "isRedeemable",
type: "bool"
}, {
internalType: "uint256",
name: "accessNftId",
type: "uint256"
}, {
internalType: "enum AccessNFT.UnderlyingType",
name: "underlyingType",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$8 = "0x60806040523480156200001157600080fd5b5060405162005a2838038062005a28833981016040819052620000349162000560565b828280620000428162000175565b506005805460ff191690556200006360006200005d6200018e565b620001aa565b620000927f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200005d6200018e565b620000c17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200005d6200018e565b50600780546001600160a01b03199081166001600160a01b03938416179091556008805490911691861691909117905581516200010690600c9060208501906200048b565b50620001116200018e565b600980546001600160a01b0319166001600160a01b0392909216919091179055620001607f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200005d6200018e565b6200016b81620001b6565b50505050620006ad565b80516200018a9060049060208401906200048b565b5050565b6000620001a5620002e660201b620026361760201c565b905090565b6200018a82826200031f565b620001cc6000620001c66200018e565b62000362565b620002445760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527f616e2063616c6c20746869732066756e6374696f6e2e0000000000000000000060648201526084015b60405180910390fd5b612710811115620002ab5760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c6573732074604482015269068616e2031302c3030360b41b60648201526084016200023b565b600b8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b6007546000906001600160a01b03163314156200030a575060131936013560601c90565b620001a56200038d60201b620026611760201c565b6200033682826200039160201b620026651760201c565b60008281526001602090815260409091206200035d918390620027046200041b821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b6200039d828262000362565b6200018a576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003d76200018e565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000432836001600160a01b03841662000439565b9392505050565b6000818152600183016020526040812054620004825750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000387565b50600062000387565b828054620004999062000670565b90600052602060002090601f016020900481019282620004bd576000855562000508565b82601f10620004d857805160ff191683800117855562000508565b8280016001018555821562000508579182015b8281111562000508578251825591602001919060010190620004eb565b50620005169291506200051a565b5090565b5b808211156200051657600081556001016200051b565b6001600160a01b03811681146200054757600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200057757600080fd5b8451620005848162000531565b80945050602080860151620005998162000531565b60408701519094506001600160401b0380821115620005b757600080fd5b818801915088601f830112620005cc57600080fd5b815181811115620005e157620005e16200054a565b604051601f8201601f19908116603f011681019083821181831017156200060c576200060c6200054a565b816040528281528b868487010111156200062557600080fd5b600093505b828410156200064957848401860151818501870152928501926200062a565b828411156200065b5760008684830101525b60609a909a0151989b979a5050505050505050565b600181811c908216806200068557607f821691505b60208210811415620006a757634e487b7160e01b600052602260045260246000fd5b50919050565b61536b80620006bd6000396000f3fe608060405234801561001057600080fd5b506004361061034b5760003560e01c80638da5cb5b116101bd578063c87b56dd116100f9578063e63ab1e9116100a2578063f23a6e611161007c578063f23a6e61146107ee578063f242432a1461080d578063f48cc32614610820578063f5298aca1461084657600080fd5b8063e63ab1e914610783578063e8a3d485146107aa578063e985e9c5146107b257600080fd5b8063d5391393116100d3578063d539139314610737578063d547741f1461075e578063d9371ddd1461077157600080fd5b8063c87b56dd14610399578063ca15c87314610711578063ca551b021461072457600080fd5b8063a217fddf11610166578063bc197c8111610140578063bc197c81146106c1578063bd85b039146106e0578063c0e7274014610700578063c63adb2b1461070857600080fd5b8063a217fddf14610686578063a22cb4651461068e578063ac9650d8146106a157600080fd5b8063938e3d7b11610197578063938e3d7b1461063c5780639745cc3d1461064f5780639f1d94771461067357600080fd5b80638da5cb5b146105d25780639010d07c146105f257806391d148541461060557600080fd5b806336568abe1161028c5780635c975abb1161023557806375794a3c1161020f57806375794a3c146105a15780638423df79146105aa5780638456cb59146105b75780638ba448c2146105bf57600080fd5b80635c975abb146105705780636b20c4541461057b578063731133e91461058e57600080fd5b80634487f6b4116102665780634487f6b41461051b5780634e1273f41461052e578063572b6c051461054e57600080fd5b806336568abe146104ed5780633f4ba83a14610500578063400c477a1461050857600080fd5b80631f72d831116102f9578063248a9ca3116102d3578063248a9ca3146104725780632a55205a146104955780632eb2c2d6146104c75780632f2ff15d146104da57600080fd5b80631f72d831146104255780631f7fdffa14610438578063206b60f91461044b57600080fd5b806313af40351161032a57806313af4035146103b9578063150b7a02146103ce57806317ffeba21461040557600080fd5b8062fdd58e1461035057806301ffc9a7146103765780630e89341c14610399575b600080fd5b61036361035e36600461441e565b610859565b6040519081526020015b60405180910390f35b610389610384366004614460565b610907565b604051901515815260200161036d565b6103ac6103a736600461447d565b610932565b60405161036d91906144ee565b6103cc6103c7366004614501565b6109d7565b005b6103ec6103dc3660046145d5565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161036d565b61036361041336600461447d565b600f6020526000908152604090205481565b6103cc61043336600461447d565b610b44565b6103cc6104463660046146d6565b610c70565b6103637f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b61036361048036600461447d565b60009081526020819052604090206001015490565b6104a86104a3366004614765565b610dec565b604080516001600160a01b03909316835260208301919091520161036d565b6103cc6104d5366004614787565b610e93565b6103cc6104e8366004614835565b610f47565b6103cc6104fb366004614835565b610f79565b6103cc611015565b6103cc6105163660046148f3565b6110bd565b6103cc610529366004614765565b61173e565b61054161053c3660046149cc565b6118e5565b60405161036d9190614ad4565b61038961055c366004614501565b6007546001600160a01b0391821691161490565b60055460ff16610389565b6103cc610589366004614ae7565b611a23565b6103cc61059c366004614b5d565b611aba565b610363600a5481565b600d546103899060ff1681565b6103cc611bd6565b6103cc6105cd366004614bbd565b611c7c565b6105da611d35565b6040516001600160a01b03909116815260200161036d565b6105da610600366004614765565b611d8e565b610389610613366004614835565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103cc61064a366004614bd8565b611dad565b61066261065d36600461447d565b611e31565b60405161036d959493929190614c30565b6103cc610681366004614bbd565b611ef9565b610363600081565b6103cc61069c366004614c90565b611fb9565b6106b46106af366004614cbc565b611fcb565b60405161036d9190614cf2565b6103ec6106cf366004614787565b63bc197c8160e01b95945050505050565b6103636106ee36600461447d565b60009081526006602052604090205490565b6103ac6120c0565b610363600b5481565b61036361071f36600461447d565b61214e565b6103cc610732366004614765565b612165565b6103637f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103cc61076c366004614835565b61244c565b600d5461038990610100900460ff1681565b6103637f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6103ac612474565b6103896107c0366004614d54565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6103ec6107fc366004614d82565b63f23a6e6160e01b95945050505050565b6103cc61081b366004614d82565b612506565b61038961082e36600461447d565b6000908152600e602052604090206002015460ff1690565b6103cc610854366004614deb565b61259f565b60006001600160a01b0383166108dc5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061091282612719565b8061090157506001600160e01b0319821663152a902d60e11b1492915050565b6000818152600e6020526040902060010180546060919061095290614e20565b80601f016020809104026020016040519081016040528092919081815260200182805461097e90614e20565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b50505050509050919050565b6109e46000610613612724565b610a4f5760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527530b71031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084016108d3565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610ad65760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e000000000060448201526064016108d3565b600980546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610b516000610613612724565b610bbc5760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527530b71031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084016108d3565b612710811115610c345760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c657373207460448201527f68616e2031302c3030300000000000000000000000000000000000000000000060648201526084016108d3565b600b8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b60005b8351811015610dd957600a54848281518110610c9157610c91614e5b565b602002602001015110610d0c5760405162461bcd60e51b815260206004820152603960248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f742063616c6c20746869732060448201527f666e20666f72206372656174696e67206e6577204e4654732e0000000000000060648201526084016108d3565b6000600e6000868481518110610d2457610d24614e5b565b60209081029190910181015182528101919091526040016000206004015460ff166002811115610d5657610d56614c1a565b14610dc95760405162461bcd60e51b815260206004820152603a60248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f7420667265656c79206d696e60448201527f74206d6f7265206f66204552433230206f72204552433732312e00000000000060648201526084016108d3565b610dd281614e87565b9050610c73565b50610de68484848461272e565b50505050565b60085460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b158015610e3457600080fd5b505afa158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c9190614ea2565b600b5490925061271090610e809085614ebf565b610e8a9190614ede565b90509250929050565b610e9b612724565b6001600160a01b0316856001600160a01b03161480610ec15750610ec1856107c0612724565b610f335760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f766564000000000000000000000000000060648201526084016108d3565b610f4085858585856127d8565b5050505050565b600082815260208190526040902060010154610f6a81610f65612724565b612a52565b610f748383612ad0565b505050565b610f81612724565b6001600160a01b0316816001600160a01b0316146110075760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108d3565b6110118282612af2565b5050565b6110417f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610613612724565b6110b35760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e7061757365000000000060648201526084016108d3565b6110bb612b14565b565b60055460ff16156111035760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108d3565b61112f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610613612724565b6111a15760405162461bcd60e51b815260206004820152602d60248201527f4163636573734e46543a206163636f756e7420646f6573206e6f74206861766560448201527f204d494e5445525f524f4c452e0000000000000000000000000000000000000060648201526084016108d3565b86831480156111af57508685145b6112215760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a204d757374207370656369667920657175616c206e7560448201527f6d626572206f6620636f6e6669672076616c7565732e0000000000000000000060648201526084016108d3565b866112945760405162461bcd60e51b815260206004820152602860248201527f4163636573734e46543a204d75737420637265617465206174206c656173742060448201527f6f6e65204e46542e00000000000000000000000000000000000000000000000060648201526084016108d3565b60008767ffffffffffffffff8111156112af576112af61451e565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b50905060008867ffffffffffffffff8111156112f6576112f661451e565b60405190808252806020026020018201604052801561131f578160200160208202803683370190505b50600a5490915060005b8a811015611614578183828151811061134457611344614e5b565b6020026020010181815250506040518060a00160405280611363612724565b6001600160a01b031681526020018b8b8481811061138357611383614e5b565b90506020028101906113959190614f00565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060208201819052604082018190526060909101526000838152600e602090815260409091208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781558282015180519192611433926001850192909101906142f9565b5060408201516002808301805492151560ff1993841617905560608401516003840155608084015160048401805491939092911690600190849081111561147c5761147c614c1a565b021790555061149091506001905083614f47565b9150818482815181106114a5576114a5614e5b565b6020026020010181815250506040518060a001604052806114c4612724565b6001600160a01b031681526020018d8d848181106114e4576114e4614e5b565b90506020028101906114f69190614f00565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001602082018190526040909101906115469085614f5f565b8152602001600090526000838152600e602090815260409091208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390911617815582820151805191926115a3926001850192909101906142f9565b5060408201516002808301805492151560ff199384161790556060840151600384015560808401516004840180549193909291169060019084908111156115ec576115ec614c1a565b021790555061160091506001905083614f47565b91508061160c81614e87565b915050611329565b5080600a819055506116683083898980806020026020016040519081016040528093929190818152602001838360200280828437600092018290525060408051602081019091529081529250612bb6915050565b6116da8c8489898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250612bb692505050565b6116e2612724565b6001600160a01b03167fe309c6cae6e35dcc6c2f37d5da32b19e0346074be56b9722cdf852d20fced6ee848d8d868e8e8e8e604051611728989796959493929190615030565b60405180910390a2505050505050505050505050565b6000828152600e60205260409020546001600160a01b031661175e612724565b6001600160a01b0316146117da5760405162461bcd60e51b815260206004820152603360248201527f4163636573734e46543a206f6e6c79207468652063726561746f722063616e2060448201527f63616c6c20746869732066756e6374696f6e2e0000000000000000000000000060648201526084016108d3565b6000828152600e602052604090206002015460ff166118615760405162461bcd60e51b815260206004820152603860248201527f4163636573734e46543a2063616e207365742072656465656d2074696d65206660448201527f6f72206f6e6c792072656465656d61626c65204e4654732e000000000000000060648201526084016108d3565b60008115611878576118738242614f47565b61187c565b6000195b6000848152600f6020526040902081905590507ff01057f3c55599179571189c7758b5ce72994adea5a8dc33095fdc8fdff07119836118b9612724565b604080519283526001600160a01b039091166020830152810183905260600160405180910390a1505050565b6060815183511461195e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016108d3565b6000835167ffffffffffffffff81111561197a5761197a61451e565b6040519080825280602002602001820160405280156119a3578160200160208202803683370190505b50905060005b8451811015611a1b576119ee8582815181106119c7576119c7614e5b565b60200260200101518583815181106119e1576119e1614e5b565b6020026020010151610859565b828281518110611a0057611a00614e5b565b6020908102919091010152611a1481614e87565b90506119a9565b509392505050565b611a2b612724565b6001600160a01b0316836001600160a01b03161480611a515750611a51836107c0612724565b611aaf5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016108d3565b610f74838383612d97565b600a548310611b315760405162461bcd60e51b815260206004820152603960248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f742063616c6c20746869732060448201527f666e20666f72206372656174696e67206e6577204e4654732e0000000000000060648201526084016108d3565b6000838152600e602052604081206004015460ff166002811115611b5757611b57614c1a565b14611bca5760405162461bcd60e51b815260206004820152603a60248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f7420667265656c79206d696e60448201527f74206d6f7265206f66204552433230206f72204552433732312e00000000000060648201526084016108d3565b610de684848484612fda565b611c027f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610613612724565b611c745760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f2070617573650000000000000060648201526084016108d3565b6110bb613084565b611c896000610613612724565b611cf45760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527530b71031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084016108d3565b600d805460ff19168215159081179091556040519081527ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90602001610c65565b6009546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16611d7c5750600090565b6009546001600160a01b03165b905090565b6000828152600160205260408120611da69083613100565b9392505050565b611dba6000610613612724565b611e255760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527530b71031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084016108d3565b610f74600c838361437d565b600e60205260009081526040902080546001820180546001600160a01b039092169291611e5d90614e20565b80601f0160208091040260200160405190810160405280929190818152602001828054611e8990614e20565b8015611ed65780601f10611eab57610100808354040283529160200191611ed6565b820191906000526020600020905b815481529060010190602001808311611eb957829003601f168201915b5050505060028301546003840154600490940154929360ff918216939092501685565b611f066000610613612724565b611f715760405162461bcd60e51b815260206004820152603660248201527f4163636573734e46543a206f6e6c792061206d6f64756c652061646d696e206360448201527530b71031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084016108d3565b600d80548215156101000261ff00199091161790556040517e4701906729f069b76305c2c6a0bfa1d4ba4ff97d08206c8716078bf7a5e02790610c6590831515815260200190565b611011611fc4612724565b838361310c565b60608167ffffffffffffffff811115611fe657611fe661451e565b60405190808252806020026020018201604052801561201957816020015b60608152602001906001900390816120045790505b50905060005b828110156120b9576120893085858481811061203d5761203d614e5b565b905060200281019061204f9190614f00565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061320192505050565b82828151811061209b5761209b614e5b565b602002602001018190525080806120b190614e87565b91505061201f565b5092915050565b600c80546120cd90614e20565b80601f01602080910402602001604051908101604052809291908181526020018280546120f990614e20565b80156121465780601f1061211b57610100808354040283529160200191612146565b820191906000526020600020905b81548152906001019060200180831161212957829003601f168201915b505050505081565b600081815260016020526040812061090190613226565b60055460ff16156121ab5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108d3565b60006121b5612724565b6000848152600e602052604090206002015490915060ff1661223f5760405162461bcd60e51b815260206004820152603360248201527f4163636573734e46543a205468697320746f6b656e206973206e6f742072656460448201527f65656d61626c6520666f72206163636573732e0000000000000000000000000060648201526084016108d3565b8161224a8285610859565b101580156122585750600082115b6122ca5760405162461bcd60e51b815260206004820152602e60248201527f4163636573734e46543a2043616e6e6f742072656465656d206d6f7265204e4660448201527f5473207468616e206f776e65642e00000000000000000000000000000000000060648201526084016108d3565b6000838152600f6020526040902054421115806122f357506000838152600f6020526040902054155b6123655760405162461bcd60e51b815260206004820152602e60248201527f4163636573734e46543a2057696e646f7720746f2072656465656d206163636560448201527f73732068617320636c6f7365642e00000000000000000000000000000000000060648201526084016108d3565b61237081848461259f565b6000838152600e6020526040808220600301549051637921219560e11b815230600482018190526001600160a01b0385166024830152604482018390526064820186905260a0608483015260a482019390935290919063f242432a9060c401600060405180830381600087803b1580156123e957600080fd5b505af11580156123fd573d6000803e3d6000fd5b505050508084836001600160a01b03167fa70022dc131dbd0be52c08bf87947e36b3e7d4934dce1efecf2d261c381d10178660405161243e91815260200190565b60405180910390a450505050565b60008281526020819052604090206001015461246a81610f65612724565b610f748383612af2565b6060600c805461248390614e20565b80601f01602080910402602001604051908101604052809291908181526020018280546124af90614e20565b80156124fc5780601f106124d1576101008083540402835291602001916124fc565b820191906000526020600020905b8154815290600101906020018083116124df57829003601f168201915b5050505050905090565b61250e612724565b6001600160a01b0316856001600160a01b031614806125345750612534856107c0612724565b6125925760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016108d3565b610f408585858585613230565b6125a7612724565b6001600160a01b0316836001600160a01b031614806125cd57506125cd836107c0612724565b61262b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016108d3565b610f748383836133ec565b6007546000906001600160a01b0316331415612659575060131936013560601c90565b503390565b90565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611011576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556126c0612724565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611da6836001600160a01b038416613574565b6000610901826135c3565b6000611d89612636565b61275a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610613612724565b6127cc5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016108d3565b610de684848484612bb6565b815183511461283a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016108d3565b6001600160a01b03841661289e5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108d3565b60006128a8612724565b90506128b88187878787876135e8565b60005b84518110156129e45760008582815181106128d8576128d8614e5b565b6020026020010151905060008583815181106128f6576128f6614e5b565b60209081029190910181015160008481526002835260408082206001600160a01b038e16835290935291909120549091508181101561298a5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108d3565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906129c9908490614f47565b92505081905550505050806129dd90614e87565b90506128bb565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612a349291906150dc565b60405180910390a4612a4a818787878787613817565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661101157612a8e816001600160a01b031660146139cc565b612a998360206139cc565b604051602001612aaa92919061510a565b60408051601f198184030181529082905262461bcd60e51b82526108d3916004016144ee565b612ada8282612665565b6000828152600160205260409020610f749082612704565b612afc8282613b75565b6000828152600160205260409020610f749082613c12565b60055460ff16612b665760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108d3565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b99612724565b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038416612c165760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108d3565b8151835114612c785760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016108d3565b6000612c82612724565b9050612c93816000878787876135e8565b60005b8451811015612d2f57838181518110612cb157612cb1614e5b565b602002602001015160026000878481518110612ccf57612ccf614e5b565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254612d179190614f47565b90915550819050612d2781614e87565b915050612c96565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612d809291906150dc565b60405180910390a4610f4081600087878787613817565b6001600160a01b038316612df95760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016108d3565b8051825114612e5b5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016108d3565b6000612e65612724565b9050612e85818560008686604051806020016040528060008152506135e8565b60005b8351811015612f89576000848281518110612ea557612ea5614e5b565b602002602001015190506000848381518110612ec357612ec3614e5b565b60209081029190910181015160008481526002835260408082206001600160a01b038c168352909352919091205490915081811015612f505760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016108d3565b60009283526002602090815260408085206001600160a01b038b1686529091529092209103905580612f8181614e87565b915050612e88565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161243e9291906150dc565b6130067f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610613612724565b6130785760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016108d3565b610de684848484613c27565b60055460ff16156130ca5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108d3565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612b99612724565b6000611da68383613d35565b816001600160a01b0316836001600160a01b031614156131945760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016108d3565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060611da6838360405180606001604052806027815260200161533860279139613d5f565b6000610901825490565b6001600160a01b0384166132945760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108d3565b600061329e612724565b90506132be8187876132af88613e4a565b6132b888613e4a565b876135e8565b60008481526002602090815260408083206001600160a01b038a168452909152902054838110156133445760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108d3565b60008581526002602090815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290613383908490614f47565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46133e3828888888888613e95565b50505050505050565b6001600160a01b03831661344e5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016108d3565b6000613458612724565b90506134888185600061346a87613e4a565b61347387613e4a565b604051806020016040528060008152506135e8565b60008381526002602090815260408083206001600160a01b0388168452909152902054828110156135075760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016108d3565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b60008181526001830160205260408120546135bb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610901565b506000610901565b60006001600160e01b03198216630271189760e51b1480610901575061090182613fa0565b6135f6868686868686613fe0565b600d5460ff16801561361057506001600160a01b03851615155b801561362457506001600160a01b03841615155b15613718576001600160a01b03851660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff16806136a657506001600160a01b03841660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b6137185760405162461bcd60e51b815260206004820152603c60248201527f4163636573734e46543a205472616e736665727320617265207265737472696360448201527f74656420746f205452414e534645525f524f4c4520686f6c646572730000000060648201526084016108d3565b60005b83518110156133e357600e600085838151811061373a5761373a614e5b565b60209081029190910181015182528101919091526040016000206002015460ff161580156137705750600d54610100900460ff16155b15613805576001600160a01b038616158061379357506001600160a01b03861630145b6138055760405162461bcd60e51b815260206004820152603960248201527f4163636573734e46543a2063616e6e6f74207472616e7366657220616e20616360448201527f63657373204e465420746861742069732072656465656d65640000000000000060648201526084016108d3565b8061380f81614e87565b91505061371b565b6001600160a01b0384163b15612a4a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061385b908990899088908890889060040161518b565b602060405180830381600087803b15801561387557600080fd5b505af19250505080156138a5575060408051601f3d908101601f191682019092526138a2918101906151e9565b60015b61395b576138b1615206565b806308c379a014156138eb57506138c6615221565b806138d157506138ed565b8060405162461bcd60e51b81526004016108d391906144ee565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016108d3565b6001600160e01b0319811663bc197c8160e01b146133e35760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016108d3565b606060006139db836002614ebf565b6139e6906002614f47565b67ffffffffffffffff8111156139fe576139fe61451e565b6040519080825280601f01601f191660200182016040528015613a28576020820181803683370190505b509050600360fc1b81600081518110613a4357613a43614e5b565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a7257613a72614e5b565b60200101906001600160f81b031916908160001a9053506000613a96846002614ebf565b613aa1906001614f47565b90505b6001811115613b26577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613ae257613ae2614e5b565b1a60f81b828281518110613af857613af8614e5b565b60200101906001600160f81b031916908160001a90535060049490941c93613b1f816152ab565b9050613aa4565b508315611da65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108d3565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615611011576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613bce612724565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611da6836001600160a01b0384166140fa565b6001600160a01b038416613c875760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108d3565b6000613c91612724565b9050613ca3816000876132af88613e4a565b60008481526002602090815260408083206001600160a01b038916845290915281208054859290613cd5908490614f47565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610f4081600087878787613e95565b6000826000018281548110613d4c57613d4c614e5b565b9060005260206000200154905092915050565b6060833b613dd55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016108d3565b600080856001600160a01b031685604051613df091906152c2565b600060405180830381855af49150503d8060008114613e2b576040519150601f19603f3d011682016040523d82523d6000602084013e613e30565b606091505b5091509150613e408282866141ed565b9695505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613e8457613e84614e5b565b602090810291909101015292915050565b6001600160a01b0384163b15612a4a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613ed990899089908890889088906004016152de565b602060405180830381600087803b158015613ef357600080fd5b505af1925050508015613f23575060408051601f3d908101601f19168201909252613f20918101906151e9565b60015b613f2f576138b1615206565b6001600160e01b0319811663f23a6e6160e01b146133e35760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016108d3565b60006001600160e01b03198216636cdb3d1360e11b1480613fd157506001600160e01b031982166303a24d0760e21b145b80610901575061090182614226565b613fee86868686868661424b565b6001600160a01b0385166140755760005b83518110156140735782818151811061401a5761401a614e5b565b60200260200101516006600086848151811061403857614038614e5b565b60200260200101518152602001908152602001600020600082825461405d9190614f47565b9091555061406c905081614e87565b9050613fff565b505b6001600160a01b038416612a4a5760005b83518110156133e3578281815181106140a1576140a1614e5b565b6020026020010151600660008684815181106140bf576140bf614e5b565b6020026020010151815260200190815260200160002060008282546140e49190614f5f565b909155506140f3905081614e87565b9050614086565b600081815260018301602052604081205480156141e357600061411e600183614f5f565b855490915060009061413290600190614f5f565b905081811461419757600086600001828154811061415257614152614e5b565b906000526020600020015490508087600001848154811061417557614175614e5b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806141a8576141a8615321565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610901565b6000915050610901565b606083156141fc575081611da6565b82511561420c5782518084602001fd5b8160405162461bcd60e51b81526004016108d391906144ee565b60006001600160e01b03198216635a05180f60e01b14806109015750610901826142c4565b60055460ff1615612a4a5760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c6520706175736564000000000000000000000000000000000000000060648201526084016108d3565b60006001600160e01b03198216637965db0b60e01b148061090157506301ffc9a760e01b6001600160e01b0319831614610901565b82805461430590614e20565b90600052602060002090601f016020900481019282614327576000855561436d565b82601f1061434057805160ff191683800117855561436d565b8280016001018555821561436d579182015b8281111561436d578251825591602001919060010190614352565b506143799291506143f1565b5090565b82805461438990614e20565b90600052602060002090601f0160209004810192826143ab576000855561436d565b82601f106143c45782800160ff1982351617855561436d565b8280016001018555821561436d579182015b8281111561436d5782358255916020019190600101906143d6565b5b8082111561437957600081556001016143f2565b6001600160a01b038116811461441b57600080fd5b50565b6000806040838503121561443157600080fd5b823561443c81614406565b946020939093013593505050565b6001600160e01b03198116811461441b57600080fd5b60006020828403121561447257600080fd5b8135611da68161444a565b60006020828403121561448f57600080fd5b5035919050565b60005b838110156144b1578181015183820152602001614499565b83811115610de65750506000910152565b600081518084526144da816020860160208601614496565b601f01601f19169290920160200192915050565b602081526000611da660208301846144c2565b60006020828403121561451357600080fd5b8135611da681614406565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561455a5761455a61451e565b6040525050565b600082601f83011261457257600080fd5b813567ffffffffffffffff81111561458c5761458c61451e565b6040516145a3601f8301601f191660200182614534565b8181528460208386010111156145b857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156145eb57600080fd5b84356145f681614406565b9350602085013561460681614406565b925060408501359150606085013567ffffffffffffffff81111561462957600080fd5b61463587828801614561565b91505092959194509250565b600067ffffffffffffffff82111561465b5761465b61451e565b5060051b60200190565b600082601f83011261467657600080fd5b8135602061468382614641565b6040516146908282614534565b83815260059390931b85018201928281019150868411156146b057600080fd5b8286015b848110156146cb57803583529183019183016146b4565b509695505050505050565b600080600080608085870312156146ec57600080fd5b84356146f781614406565b9350602085013567ffffffffffffffff8082111561471457600080fd5b61472088838901614665565b9450604087013591508082111561473657600080fd5b61474288838901614665565b9350606087013591508082111561475857600080fd5b5061463587828801614561565b6000806040838503121561477857600080fd5b50508035926020909101359150565b600080600080600060a0868803121561479f57600080fd5b85356147aa81614406565b945060208601356147ba81614406565b9350604086013567ffffffffffffffff808211156147d757600080fd5b6147e389838a01614665565b945060608801359150808211156147f957600080fd5b61480589838a01614665565b9350608088013591508082111561481b57600080fd5b5061482888828901614561565b9150509295509295909350565b6000806040838503121561484857600080fd5b82359150602083013561485a81614406565b809150509250929050565b60008083601f84011261487757600080fd5b50813567ffffffffffffffff81111561488f57600080fd5b6020830191508360208260051b85010111156148aa57600080fd5b9250929050565b60008083601f8401126148c357600080fd5b50813567ffffffffffffffff8111156148db57600080fd5b6020830191508360208285010111156148aa57600080fd5b600080600080600080600080600060a08a8c03121561491157600080fd5b893561491c81614406565b985060208a013567ffffffffffffffff8082111561493957600080fd5b6149458d838e01614865565b909a50985060408c013591508082111561495e57600080fd5b61496a8d838e01614865565b909850965060608c013591508082111561498357600080fd5b61498f8d838e01614865565b909650945060808c01359150808211156149a857600080fd5b506149b58c828d016148b1565b915080935050809150509295985092959850929598565b600080604083850312156149df57600080fd5b823567ffffffffffffffff808211156149f757600080fd5b818501915085601f830112614a0b57600080fd5b81356020614a1882614641565b604051614a258282614534565b83815260059390931b8501820192828101915089841115614a4557600080fd5b948201945b83861015614a6c578535614a5d81614406565b82529482019490820190614a4a565b96505086013592505080821115614a8257600080fd5b50614a8f85828601614665565b9150509250929050565b600081518084526020808501945080840160005b83811015614ac957815187529582019590820190600101614aad565b509495945050505050565b602081526000611da66020830184614a99565b600080600060608486031215614afc57600080fd5b8335614b0781614406565b9250602084013567ffffffffffffffff80821115614b2457600080fd5b614b3087838801614665565b93506040860135915080821115614b4657600080fd5b50614b5386828701614665565b9150509250925092565b60008060008060808587031215614b7357600080fd5b8435614b7e81614406565b93506020850135925060408501359150606085013567ffffffffffffffff81111561462957600080fd5b80358015158114614bb857600080fd5b919050565b600060208284031215614bcf57600080fd5b611da682614ba8565b60008060208385031215614beb57600080fd5b823567ffffffffffffffff811115614c0257600080fd5b614c0e858286016148b1565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038616815260a060208201526000614c5260a08301876144c2565b9050841515604083015283606083015260038310614c8057634e487b7160e01b600052602160045260246000fd5b8260808301529695505050505050565b60008060408385031215614ca357600080fd5b8235614cae81614406565b9150610e8a60208401614ba8565b60008060208385031215614ccf57600080fd5b823567ffffffffffffffff811115614ce657600080fd5b614c0e85828601614865565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d4757603f19888603018452614d358583516144c2565b94509285019290850190600101614d19565b5092979650505050505050565b60008060408385031215614d6757600080fd5b8235614d7281614406565b9150602083013561485a81614406565b600080600080600060a08688031215614d9a57600080fd5b8535614da581614406565b94506020860135614db581614406565b93506040860135925060608601359150608086013567ffffffffffffffff811115614ddf57600080fd5b61482888828901614561565b600080600060608486031215614e0057600080fd5b8335614e0b81614406565b95602085013595506040909401359392505050565b600181811c90821680614e3457607f821691505b60208210811415614e5557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415614e9b57614e9b614e71565b5060010190565b600060208284031215614eb457600080fd5b8151611da681614406565b6000816000190483118215151615614ed957614ed9614e71565b500290565b600082614efb57634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e19843603018112614f1757600080fd5b83018035915067ffffffffffffffff821115614f3257600080fd5b6020019150368190038213156148aa57600080fd5b60008219821115614f5a57614f5a614e71565b500190565b600082821015614f7157614f71614e71565b500390565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b810191508460005b878110156150235782840389528135601e19883603018112614fda57600080fd5b8701803567ffffffffffffffff811115614ff357600080fd5b80360389131561500257600080fd5b61500f8682898501614f76565b9a87019a9550505090840190600101614fb9565b5091979650505050505050565b60a08152600061504360a083018b614a99565b8281036020840152615056818a8c614f9f565b9050828103604084015261506a8189614a99565b9050828103606084015261507f818789614f9f565b905082810360808401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8411156150b957600080fd5b8360051b80866020840137600091016020019081529a9950505050505050505050565b6040815260006150ef6040830185614a99565b82810360208401526151018185614a99565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615142816017850160208801614496565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161517f816028840160208801614496565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a060408301526151b760a0830186614a99565b82810360608401526151c98186614a99565b905082810360808401526151dd81856144c2565b98975050505050505050565b6000602082840312156151fb57600080fd5b8151611da68161444a565b600060033d111561265e5760046000803e5060005160e01c90565b600060443d101561522f5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561525f57505050505090565b82850191508151818111156152775750505050505090565b843d87010160208285010111156152915750505050505090565b6152a060208286010187614534565b509095945050505050565b6000816152ba576152ba614e71565b506000190190565b600082516152d4818460208701614496565b9190910192915050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261531660a08301846144c2565b979650505050505050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$8 = function isSuperArgs(xs) {
return xs.length > 1;
};
var AccessNFT__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(AccessNFT__factory, _ContractFactory);
function AccessNFT__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$8(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$N, _bytecode$8, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = AccessNFT__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
AccessNFT__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$N);
};
AccessNFT__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$N, signerOrProvider);
};
return AccessNFT__factory;
}(ContractFactory);
AccessNFT__factory.bytecode = _bytecode$8;
AccessNFT__factory.abi = _abi$N;
var _abi$O = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "fromDelegate",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "toDelegate",
type: "address"
}],
name: "DelegateChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegate",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "previousBalance",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newBalance",
type: "uint256"
}],
name: "DelegateVotesChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burnFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint32",
name: "pos",
type: "uint32"
}],
name: "checkpoints",
outputs: [{
components: [{
internalType: "uint32",
name: "fromBlock",
type: "uint32"
}, {
internalType: "uint224",
name: "votes",
type: "uint224"
}],
internalType: "struct ERC20Votes.Checkpoint",
name: "",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}],
name: "delegate",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}, {
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "uint256",
name: "expiry",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "delegateBySig",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "delegates",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastTotalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastVotes",
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: "address",
name: "account",
type: "address"
}],
name: "getVotes",
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: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "numCheckpoints",
outputs: [{
internalType: "uint32",
name: "",
type: "uint32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
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: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$9 = "0x6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b5060405162003db138038062003db18339810160408190526200005a916200058a565b818480604051806040016040528060018152602001603160f81b8152508787816005908051906020019062000091929190620003fe565b508051620000a7906006906020840190620003fe565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c052610120525050600b80546001600160a81b0319166101006001600160a01b03968716021790555050600c80546001600160a01b031916928816929092179091555080516200018990600d906020840190620003fe565b50620001a060006200019a62000238565b62000254565b620001cf7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200019a62000238565b620001fe7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200019a62000238565b6200022d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200019a62000238565b505050505062000684565b60006200024f6200026460201b6200159b1760201c565b905090565b620002608282620002a3565b5050565b600b546000906001600160a01b03610100909104163314156200028e575060131936013560601c90565b6200024f620002e660201b620015c81760201c565b620002ba8282620002ea60201b620015cc1760201c565b6000828152600160209081526040909120620002e19183906200166b6200038c821b17901c565b505050565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000260576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200034862000238565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003a3836001600160a01b038416620003ac565b90505b92915050565b6000818152600183016020526040812054620003f557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003a6565b506000620003a6565b8280546200040c9062000647565b90600052602060002090601f0160209004810192826200043057600085556200047b565b82601f106200044b57805160ff19168380011785556200047b565b828001600101855582156200047b579182015b828111156200047b5782518255916020019190600101906200045e565b50620004899291506200048d565b5090565b5b808211156200048957600081556001016200048e565b6001600160a01b0381168114620004ba57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620004e557600080fd5b81516001600160401b0380821115620005025762000502620004bd565b604051601f8301601f19908116603f011681019082821181831017156200052d576200052d620004bd565b816040528381526020925086838588010111156200054a57600080fd5b600091505b838210156200056e57858201830151818301840152908201906200054f565b83821115620005805760008385830101525b9695505050505050565b600080600080600060a08688031215620005a357600080fd5b8551620005b081620004a4565b60208701519095506001600160401b0380821115620005ce57600080fd5b620005dc89838a01620004d3565b95506040880151915080821115620005f357600080fd5b6200060189838a01620004d3565b9450606088015191506200061582620004a4565b6080880151919350808211156200062b57600080fd5b506200063a88828901620004d3565b9150509295509295909350565b600181811c908216806200065c57607f821691505b602082108114156200067e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516136d2620006df600039600061135101526000611b2101526000611b7001526000611b4b01526000611aa401526000611ace01526000611af801526136d26000f3fe608060405234801561001057600080fd5b506004361061030a5760003560e01c80637ecebe001161019c578063a457c2d7116100ee578063d539139311610097578063e63ab1e911610071578063e63ab1e914610715578063e8a3d4851461073c578063f1127ed81461074457600080fd5b8063d5391393146106a2578063d547741f146106c9578063dd62ed3e146106dc57600080fd5b8063c3cda520116100c8578063c3cda52014610669578063ca15c8731461067c578063d505accf1461068f57600080fd5b8063a457c2d714610623578063a9059cbb14610636578063ac9650d81461064957600080fd5b80639010d07c1161015057806395d89b411161012a57806395d89b41146106005780639ab24eb014610608578063a217fddf1461061b57600080fd5b80639010d07c146105a357806391d14854146105b6578063938e3d7b146105ed57600080fd5b80638456cb59116101815780638456cb59146105755780638ba448c21461057d5780638e539e8c1461059057600080fd5b80637ecebe001461054e5780638423df791461056157600080fd5b80633950935111610260578063587cde1e116102095780636fcfff45116101e35780636fcfff45146104ea57806370a082311461051257806379cc67901461053b57600080fd5b8063587cde1e146104885780635c19a95c146104cc5780635c975abb146104df57600080fd5b806340c10f191161023a57806340c10f191461043b57806342966c681461044e578063572b6c051461046157600080fd5b8063395093511461040d5780633a46b1a8146104205780633f4ba83a1461043357600080fd5b806323b872dd116102c2578063313ce5671161029c578063313ce567146103e35780633644e515146103f257806336568abe146103fa57600080fd5b806323b872dd14610398578063248a9ca3146103ab5780632f2ff15d146103ce57600080fd5b8063095ea7b3116102f3578063095ea7b31461034c57806318160ddd1461035f578063206b60f91461037157600080fd5b806301ffc9a71461030f57806306fdde0314610337575b600080fd5b61032261031d36600461303f565b610781565b60405190151581526020015b60405180910390f35b61033f6107ac565b60405161032e91906130c1565b61032261035a3660046130f0565b61083e565b6004545b60405190815260200161032e565b6103637f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b6103226103a636600461311a565b61085b565b6103636103b9366004613156565b60009081526020819052604090206001015490565b6103e16103dc36600461316f565b610948565b005b6040516012815260200161032e565b61036361097a565b6103e161040836600461316f565b610989565b61032261041b3660046130f0565b610a25565b61036361042e3660046130f0565b610a79565b6103e1610aec565b6103e16104493660046130f0565b610b94565b6103e161045c366004613156565b610c22565b61032261046f36600461319b565b600b5461010090046001600160a01b0390811691161490565b6104b461049636600461319b565b6001600160a01b039081166000908152600860205260409020541690565b6040516001600160a01b03909116815260200161032e565b6103e16104da36600461319b565b610c36565b600b5460ff16610322565b6104fd6104f836600461319b565b610c47565b60405163ffffffff909116815260200161032e565b61036361052036600461319b565b6001600160a01b031660009081526002602052604090205490565b6103e16105493660046130f0565b610c69565b61036361055c36600461319b565b610cf3565b600b5461032290600160a81b900460ff1681565b6103e1610d11565b6103e161058b3660046131b6565b610d9d565b61036361059e366004613156565b610e69565b6104b46105b13660046131d8565b610ec5565b6103226105c436600461316f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103e16105fb3660046131fa565b610edd565b61033f610f42565b61036361061636600461319b565b610f51565b610363600081565b6103226106313660046130f0565b610fd8565b6103226106443660046130f0565b6110a7565b61065c61065736600461326c565b6110bb565b60405161032e91906132cf565b6103e1610677366004613342565b6111b0565b61036361068a366004613156565b6112e6565b6103e161069d36600461339a565b6112fd565b6103637f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103e16106d736600461316f565b611461565b6103636106ea366004613404565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6103637f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61033f611489565b61075761075236600461342e565b611517565b60408051825163ffffffff1681526020928301516001600160e01b0316928101929092520161032e565b60006001600160e01b03198216635a05180f60e01b14806107a657506107a682611680565b92915050565b6060600580546107bb9061346e565b80601f01602080910402602001604051908101604052809291908181526020018280546107e79061346e565b80156108345780601f1061080957610100808354040283529160200191610834565b820191906000526020600020905b81548152906001019060200180831161081757829003601f168201915b5050505050905090565b600061085261084b6116b5565b84846116bf565b50600192915050565b60006108688484846117e3565b6001600160a01b0384166000908152600360205260408120816108896116b5565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156109275760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61093b856109336116b5565b8584036116bf565b60019150505b9392505050565b60008281526020819052604090206001015461096b816109666116b5565b6119f7565b6109758383611a75565b505050565b6000610984611a97565b905090565b6109916116b5565b6001600160a01b0316816001600160a01b031614610a175760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161091e565b610a218282611bbe565b5050565b6000610852610a326116b5565b848460036000610a406116b5565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610a7491906134b9565b6116bf565b6000438210610aca5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161091e565b6001600160a01b03831660009081526009602052604090206109419083611be0565b610b187f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105c46116b5565b610b8a5760405162461bcd60e51b815260206004820152602660248201527f436f696e3a206d75737420686176652070617573657220726f6c6520746f207560448201527f6e70617573650000000000000000000000000000000000000000000000000000606482015260840161091e565b610b92611c9d565b565b610bc07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66105c46116b5565b610c185760405162461bcd60e51b815260206004820152602360248201527f436f696e3a206d7573742068617665206d696e74657220726f6c6520746f206d6044820152621a5b9d60ea1b606482015260840161091e565b610a218282611d3f565b610c33610c2d6116b5565b82611d49565b50565b610c33610c416116b5565b82611d53565b6001600160a01b0381166000908152600960205260408120546107a690611de5565b6000610c77836106ea6116b5565b905081811015610cd55760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b606482015260840161091e565b610ce983610ce16116b5565b8484036116bf565b6109758383611d49565b6001600160a01b0381166000908152600760205260408120546107a6565b610d3d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105c46116b5565b610d955760405162461bcd60e51b8152602060048201526024808201527f436f696e3a206d75737420686176652070617573657220726f6c6520746f20706044820152636175736560e01b606482015260840161091e565b610b92611e65565b610daa60006105c46116b5565b610df65760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c6500000000000000000000604482015260640161091e565b600b8054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90610e5e90831515815260200190565b60405180910390a150565b6000438210610eba5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161091e565b6107a6600a83611be0565b60008281526001602052604081206109419083611eee565b610eea60006105c46116b5565b610f365760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c6500000000000000000000604482015260640161091e565b610975600d8383612faf565b6060600680546107bb9061346e565b6001600160a01b0381166000908152600960205260408120548015610fc5576001600160a01b0383166000908152600960205260409020610f936001836134d1565b81548110610fa357610fa36134e8565b60009182526020909120015464010000000090046001600160e01b0316610fc8565b60005b6001600160e01b03169392505050565b60008060036000610fe76116b5565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156110895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161091e565b61109d6110946116b5565b858584036116bf565b5060019392505050565b60006108526110b46116b5565b84846117e3565b60608167ffffffffffffffff8111156110d6576110d66134fe565b60405190808252806020026020018201604052801561110957816020015b60608152602001906001900390816110f45790505b50905060005b828110156111a9576111793085858481811061112d5761112d6134e8565b905060200281019061113f9190613514565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611efa92505050565b82828151811061118b5761118b6134e8565b602002602001018190525080806111a190613562565b91505061110f565b5092915050565b834211156112005760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161091e565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009061127a906112729060a00160405160208183030381529060405280519060200120611f1f565b858585611f6d565b905061128581611f95565b86146112d35760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161091e565b6112dd8188611d53565b50505050505050565b60008181526001602052604081206107a690611fbd565b8342111561134d5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161091e565b60007f000000000000000000000000000000000000000000000000000000000000000088888861137c8c611f95565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006113d782611f1f565b905060006113e782878787611f6d565b9050896001600160a01b0316816001600160a01b03161461144a5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161091e565b6114558a8a8a6116bf565b50505050505050505050565b60008281526020819052604090206001015461147f816109666116b5565b6109758383611bbe565b600d80546114969061346e565b80601f01602080910402602001604051908101604052809291908181526020018280546114c29061346e565b801561150f5780601f106114e45761010080835404028352916020019161150f565b820191906000526020600020905b8154815290600101906020018083116114f257829003601f168201915b505050505081565b60408051808201909152600080825260208201526001600160a01b0383166000908152600960205260409020805463ffffffff841690811061155b5761155b6134e8565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b600b5460009061010090046001600160a01b03163314156115c3575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610a21576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556116276116b5565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610941836001600160a01b038416611fc7565b60006001600160e01b03198216637965db0b60e01b14806107a657506301ffc9a760e01b6001600160e01b03198316146107a6565b600061098461159b565b6001600160a01b0383166117215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091e565b6001600160a01b0382166117825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091e565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661185f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161091e565b6001600160a01b0382166118c15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091e565b6118cc838383612016565b6001600160a01b0383166000908152600260205260409020548181101561195b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161091e565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906119929084906134b9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119de91815260200190565b60405180910390a36119f184848461214a565b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610a2157611a33816001600160a01b03166014612155565b611a3e836020612155565b604051602001611a4f92919061357d565b60408051601f198184030181529082905262461bcd60e51b825261091e916004016130c1565b611a7f82826115cc565b6000828152600160205260409020610975908261166b565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611af057507f000000000000000000000000000000000000000000000000000000000000000046145b15611b1a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b611bc882826122fe565b6000828152600160205260409020610975908261239b565b8154600090815b81811015611c44576000611bfb82846123b0565b905084868281548110611c1057611c106134e8565b60009182526020909120015463ffffffff161115611c3057809250611c3e565b611c3b8160016134b9565b91505b50611be7565b8115611c885784611c566001846134d1565b81548110611c6657611c666134e8565b60009182526020909120015464010000000090046001600160e01b0316611c8b565b60005b6001600160e01b031695945050505050565b600b5460ff16611cef5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161091e565b600b805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611d226116b5565b6040516001600160a01b03909116815260200160405180910390a1565b610a2182826123cb565b610a218282612462565b6001600160a01b03828116600081815260086020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46119f182848361247a565b600063ffffffff821115611e615760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161091e565b5090565b600b5460ff1615611eb85760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161091e565b600b805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d226116b5565b600061094183836125b7565b6060610941838360405180606001604052806027815260200161369f602791396125e1565b60006107a6611f2c611a97565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611f7e878787876126cc565b91509150611f8b816127b9565b5095945050505050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b60006107a6825490565b600081815260018301602052604081205461200e575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107a6565b5060006107a6565b612021838383612974565b600b54600160a81b900460ff16801561204257506001600160a01b03831615155b801561205657506001600160a01b03821615155b15610975576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff16806120d857506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b6109755760405162461bcd60e51b815260206004820152603760248201527f436f696e3a205472616e7366657273206172652072657374726963746564207460448201527f6f205452414e534645525f524f4c4520686f6c64657273000000000000000000606482015260840161091e565b6109758383836129ed565b606060006121648360026135fe565b61216f9060026134b9565b67ffffffffffffffff811115612187576121876134fe565b6040519080825280601f01601f1916602001820160405280156121b1576020820181803683370190505b509050600360fc1b816000815181106121cc576121cc6134e8565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121fb576121fb6134e8565b60200101906001600160f81b031916908160001a905350600061221f8460026135fe565b61222a9060016134b9565b90505b60018111156122af577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061226b5761226b6134e8565b1a60f81b828281518110612281576122816134e8565b60200101906001600160f81b031916908160001a90535060049490941c936122a88161361d565b905061222d565b5083156109415760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161091e565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610a21576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556123576116b5565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610941836001600160a01b038416612a1f565b60006123bf6002848418613634565b610941908484166134b9565b6123d58282612b12565b6004546001600160e01b0310156124545760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f74657300000000000000000000000000000000606482015260840161091e565b6119f1600a612c0583612c11565b61246c8282612d8a565b6119f1600a612eeb83612c11565b816001600160a01b0316836001600160a01b03161415801561249c5750600081115b15610975576001600160a01b0383161561252a576001600160a01b038316600090815260096020526040812081906124d790612eeb85612c11565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161251f929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610975576001600160a01b0382166000908152600960205260408120819061256090612c0585612c11565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516125a8929190918252602082015260400190565b60405180910390a25050505050565b60008260000182815481106125ce576125ce6134e8565b9060005260206000200154905092915050565b6060833b6126575760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161091e565b600080856001600160a01b0316856040516126729190613656565b600060405180830381855af49150503d80600081146126ad576040519150601f19603f3d011682016040523d82523d6000602084013e6126b2565b606091505b50915091506126c2828286612ef7565b9695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561270357506000905060036127b0565b8460ff16601b1415801561271b57508460ff16601c14155b1561272c57506000905060046127b0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612780573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166127a9576000600192509250506127b0565b9150600090505b94509492505050565b60008160048111156127cd576127cd613672565b14156127d65750565b60018160048111156127ea576127ea613672565b14156128385760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161091e565b600281600481111561284c5761284c613672565b141561289a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161091e565b60038160048111156128ae576128ae613672565b14156129075760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161091e565b600481600481111561291b5761291b613672565b1415610c335760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161091e565b600b5460ff16156109755760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e7366657220776860448201527f696c652070617573656400000000000000000000000000000000000000000000606482015260840161091e565b6001600160a01b038381166000908152600860205260408082205485841683529120546109759291821691168361247a565b60008181526001830160205260408120548015612b08576000612a436001836134d1565b8554909150600090612a57906001906134d1565b9050818114612abc576000866000018281548110612a7757612a776134e8565b9060005260206000200154905080876000018481548110612a9a57612a9a6134e8565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612acd57612acd613688565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107a6565b60009150506107a6565b6001600160a01b038216612b685760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161091e565b612b7460008383612016565b8060046000828254612b8691906134b9565b90915550506001600160a01b03821660009081526002602052604081208054839290612bb39084906134b9565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610a216000838361214a565b600061094182846134b9565b825460009081908015612c5c5785612c2a6001836134d1565b81548110612c3a57612c3a6134e8565b60009182526020909120015464010000000090046001600160e01b0316612c5f565b60005b6001600160e01b03169250612c7883858763ffffffff16565b9150600081118015612cb657504386612c926001846134d1565b81548110612ca257612ca26134e8565b60009182526020909120015463ffffffff16145b15612d1657612cc482612f30565b86612cd06001846134d1565b81548110612ce057612ce06134e8565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550612d81565b856040518060400160405280612d2b43611de5565b63ffffffff168152602001612d3f85612f30565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b6001600160a01b038216612dea5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161091e565b612df682600083612016565b6001600160a01b03821660009081526002602052604090205481811015612e6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161091e565b6001600160a01b0383166000908152600260205260408120838303905560048054849290612e999084906134d1565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36109758360008461214a565b600061094182846134d1565b60608315612f06575081610941565b825115612f165782518084602001fd5b8160405162461bcd60e51b815260040161091e91906130c1565b60006001600160e01b03821115611e615760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f3234206269747300000000000000000000000000000000000000000000000000606482015260840161091e565b828054612fbb9061346e565b90600052602060002090601f016020900481019282612fdd5760008555613023565b82601f10612ff65782800160ff19823516178555613023565b82800160010185558215613023579182015b82811115613023578235825591602001919060010190613008565b50611e619291505b80821115611e61576000815560010161302b565b60006020828403121561305157600080fd5b81356001600160e01b03198116811461094157600080fd5b60005b8381101561308457818101518382015260200161306c565b838111156119f15750506000910152565b600081518084526130ad816020860160208601613069565b601f01601f19169290920160200192915050565b6020815260006109416020830184613095565b80356001600160a01b03811681146130eb57600080fd5b919050565b6000806040838503121561310357600080fd5b61310c836130d4565b946020939093013593505050565b60008060006060848603121561312f57600080fd5b613138846130d4565b9250613146602085016130d4565b9150604084013590509250925092565b60006020828403121561316857600080fd5b5035919050565b6000806040838503121561318257600080fd5b82359150613192602084016130d4565b90509250929050565b6000602082840312156131ad57600080fd5b610941826130d4565b6000602082840312156131c857600080fd5b8135801515811461094157600080fd5b600080604083850312156131eb57600080fd5b50508035926020909101359150565b6000806020838503121561320d57600080fd5b823567ffffffffffffffff8082111561322557600080fd5b818501915085601f83011261323957600080fd5b81358181111561324857600080fd5b86602082850101111561325a57600080fd5b60209290920196919550909350505050565b6000806020838503121561327f57600080fd5b823567ffffffffffffffff8082111561329757600080fd5b818501915085601f8301126132ab57600080fd5b8135818111156132ba57600080fd5b8660208260051b850101111561325a57600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561332457603f19888603018452613312858351613095565b945092850192908501906001016132f6565b5092979650505050505050565b803560ff811681146130eb57600080fd5b60008060008060008060c0878903121561335b57600080fd5b613364876130d4565b9550602087013594506040870135935061338060608801613331565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a0312156133b557600080fd5b6133be886130d4565b96506133cc602089016130d4565b955060408801359450606088013593506133e860808901613331565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561341757600080fd5b613420836130d4565b9150613192602084016130d4565b6000806040838503121561344157600080fd5b61344a836130d4565b9150602083013563ffffffff8116811461346357600080fd5b809150509250929050565b600181811c9082168061348257607f821691505b60208210811415611fb757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156134cc576134cc6134a3565b500190565b6000828210156134e3576134e36134a3565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6000808335601e1984360301811261352b57600080fd5b83018035915067ffffffffffffffff82111561354657600080fd5b60200191503681900382131561355b57600080fd5b9250929050565b6000600019821415613576576135766134a3565b5060010190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516135b5816017850160208801613069565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516135f2816028840160208801613069565b01602801949350505050565b6000816000190483118215151615613618576136186134a3565b500290565b60008161362c5761362c6134a3565b506000190190565b60008261365157634e487b7160e01b600052601260045260246000fd5b500490565b60008251613668818460208701613069565b9190910192915050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$9 = function isSuperArgs(xs) {
return xs.length > 1;
};
var Coin__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Coin__factory, _ContractFactory);
function Coin__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$9(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$O, _bytecode$9, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Coin__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _name, _symbol, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _uri, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _name, _symbol, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _uri, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Coin__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$O);
};
Coin__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$O, signerOrProvider);
};
return Coin__factory;
}(ContractFactory);
Coin__factory.bytecode = _bytecode$9;
Coin__factory.abi = _abi$O;
var _abi$P = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "registry",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "deployer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "control",
type: "address"
}],
name: "DeployedControl",
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "REGISTRY_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "address",
name: "deployer",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}],
name: "deployControl",
outputs: [{
internalType: "address",
name: "control",
type: "address"
}],
stateMutability: "nonpayable",
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: "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: [],
name: "implementation",
outputs: [{
internalType: "contract ProtocolControl",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$a = "0x60a060405234801561001057600080fd5b5060405161001d90610102565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610051600033610056565b61010f565b6100608282610064565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610060576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100be3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612b6c80610d2183390190565b608051610bf06101316000396000818161017001526103d30152610bf06000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80635c60da1b11610076578063a217fddf1161005b578063a217fddf146101e1578063ca282cb3146101e9578063d547741f146101fc57600080fd5b80635c60da1b1461016b57806391d14854146101aa57600080fd5b80632f2ff15d116100a75780632f2ff15d1461011c57806336568abe1461013157806342f1e8791461014457600080fd5b806301ffc9a7146100c3578063248a9ca3146100eb575b600080fd5b6100d66100d13660046108d8565b61020f565b60405190151581526020015b60405180910390f35b61010e6100f9366004610902565b60009081526020819052604090206001015490565b6040519081526020016100e2565b61012f61012a366004610937565b610246565b005b61012f61013f366004610937565b610271565b61010e7fc2979137d1774e40fe2638d355bf7a7b092be4c67f242aad1655e1e27f9df9cc81565b6101927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100e2565b6100d66101b8366004610937565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61010e600081565b6101926101f7366004610979565b610302565b61012f61020a366004610937565b6104b0565b60006001600160e01b03198216637965db0b60e01b148061024057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008281526020819052604090206001015461026281336104d6565b61026c8383610554565b505050565b6001600160a01b03811633146102f45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fe82826105f2565b5050565b3360008181527ff335f57b756ddd7e591b923d07203a74acc727c4bda262e47a8da634def041a6602052604081205490919060ff166103835760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642072656769737472790000000000000000000000000000000060448201526064016102eb565b6040516bffffffffffffffffffffffff19606083811b8216602084015286901b166034820152604881018690526000906068016040516020818303038152906040528051906020012090506103f87f000000000000000000000000000000000000000000000000000000000000000082610671565b6040516322b8f1d360e11b81529093506001600160a01b03841690634571e3a69061042b90859089908990600401610aa0565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b50505050826001600160a01b0316856001600160a01b0316836001600160a01b03167f42b7c3bcb4f81bdee60d3f586a6843ee1571f21e8bf0480af04e2c6418465b4760405160405180910390a450509392505050565b6000828152602081905260409020600101546104cc81336104d6565b61026c83836105f2565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166102fe57610512816001600160a01b03166014610728565b61051d836020610728565b60405160200161052e929190610ad5565b60408051601f198184030181529082905262461bcd60e51b82526102eb91600401610b56565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166102fe576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556105ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156102fe576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f59150506001600160a01b0381166102405760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016102eb565b60606000610737836002610b7f565b610742906002610b9e565b67ffffffffffffffff81111561075a5761075a610963565b6040519080825280601f01601f191660200182016040528015610784576020820181803683370190505b509050600360fc1b8160008151811061079f5761079f610bb6565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106107ce576107ce610bb6565b60200101906001600160f81b031916908160001a90535060006107f2846002610b7f565b6107fd906001610b9e565b90505b6001811115610882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061083e5761083e610bb6565b1a60f81b82828151811061085457610854610bb6565b60200101906001600160f81b031916908160001a90535060049490941c9361087b81610bcc565b9050610800565b5083156108d15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016102eb565b9392505050565b6000602082840312156108ea57600080fd5b81356001600160e01b0319811681146108d157600080fd5b60006020828403121561091457600080fd5b5035919050565b80356001600160a01b038116811461093257600080fd5b919050565b6000806040838503121561094a57600080fd5b8235915061095a6020840161091b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561098e57600080fd5b8335925061099e6020850161091b565b9150604084013567ffffffffffffffff808211156109bb57600080fd5b818601915086601f8301126109cf57600080fd5b8135818111156109e1576109e1610963565b604051601f8201601f19908116603f01168101908382118183101715610a0957610a09610963565b81604052828152896020848701011115610a2257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60005b83811015610a5f578181015183820152602001610a47565b83811115610a6e576000848401525b50505050565b60008151808452610a8c816020860160208601610a44565b601f01601f19169290920160200192915050565b60006001600160a01b03808616835280851660208401525060606040830152610acc6060830184610a74565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b0d816017850160208801610a44565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610b4a816028840160208801610a44565b01602801949350505050565b6020815260006108d16020830184610a74565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610b9957610b99610b69565b500290565b60008219821115610bb157610bb1610b69565b500190565b634e487b7160e01b600052603260045260246000fd5b600081610bdb57610bdb610b69565b50600019019056fea164736f6c6343000809000a60806040523480156200001157600080fd5b50600254610100900460ff166200002f5760025460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600254610100900460ff16158015620000c4576002805461ffff19166101011790555b8015620000d7576002805461ff00191690555b5062000102565b6000620000f630620000fc60201b620019931760201c565b15905090565b3b151590565b612a5a80620001126000396000f3fe6080604052600436106101c55760003560e01c806391d14854116100f7578063b0b6cc1a11610095578063d547741f11610064578063d547741f146105e3578063e8a3d48514610603578063f2aab4b314610618578063fd967f471461063857600080fd5b8063b0b6cc1a1461054d578063b9998a2414610583578063c097b1fb146105a3578063ca15c873146105c357600080fd5b8063a0042526116100d1578063a0042526146104c9578063a217fddf146104de578063ac9650d8146104f3578063aca841751461052057600080fd5b806391d1485414610445578063938e3d7b1461048957806396362d32146104a957600080fd5b80633b98a7df116101645780634d8188851161013e5780634d818885146103ab57806354fd4d50146103cb5780637b103999146104055780639010d07c1461042557600080fd5b80633b98a7df1461033e5780633fff7bf81461035e5780634571e3a61461038b57600080fd5b8063248a9ca3116101a0578063248a9ca3146102985780632f2ff15d146102d657806331f7d964146102f657806336568abe1461031e57600080fd5b80620fa9fb1461020957806301ffc9a71461022b57806305e9ca9b1461026057600080fd5b3661020457604080513381523460208201527f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b910160405180910390a1005b600080fd5b34801561021557600080fd5b506102296102243660046123dd565b61064e565b005b34801561023757600080fd5b5061024b610246366004612416565b610c8d565b60405190151581526020015b60405180910390f35b34801561026c57600080fd5b50600754610280906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102a457600080fd5b506102c86102b3366004612440565b60009081526020819052604090206001015490565b604051908152602001610257565b3480156102e257600080fd5b506102296102f1366004612459565b610cb8565b34801561030257600080fd5b5061028073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561032a57600080fd5b50610229610339366004612459565b610ce3565b34801561034a57600080fd5b5061022961035936600461247e565b610d6f565b34801561036a57600080fd5b506102c8610379366004612440565b60046020526000908152604090205481565b34801561039757600080fd5b506102296103a63660046124b1565b610ed3565b3480156103b757600080fd5b506102296103c63660046123dd565b610fe6565b3480156103d757600080fd5b506103f8604051806040016040528060018152602001603160f81b81525081565b60405161025791906125df565b34801561041157600080fd5b50600654610280906001600160a01b031681565b34801561043157600080fd5b506102806104403660046125f2565b61115a565b34801561045157600080fd5b5061024b610460366004612459565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561049557600080fd5b506102296104a4366004612614565b611179565b3480156104b557600080fd5b506102c86104c4366004612686565b611229565b3480156104d557600080fd5b50610280611380565b3480156104ea57600080fd5b506102c8600081565b3480156104ff57600080fd5b5061051361050e3660046126b2565b61142e565b6040516102579190612715565b34801561052c57600080fd5b5061054061053b366004612440565b611523565b6040516102579190612777565b34801561055957600080fd5b50610280610568366004612440565b6003602052600090815260409020546001600160a01b031681565b34801561058f57600080fd5b5061022961059e36600461247e565b611614565b3480156105af57600080fd5b506102296105be366004612459565b61170c565b3480156105cf57600080fd5b506102c86105de366004612440565b611893565b3480156105ef57600080fd5b506102296105fe366004612459565b6118aa565b34801561060f57600080fd5b506103f86118d0565b34801561062457600080fd5b5061028061063336600461247e565b61195e565b34801561064457600080fd5b506102c861271081565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166106f75760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084015b60405180910390fd5b600654604080516361d027b360e01b815290516001600160a01b0390921691839160009184916361d027b3916004808301926020929190829003018186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a91906127c4565b905060008061078884611999565b9050801561079857479150610812565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080f91906127e1565b91505b604051630e78de6f60e31b8152306004820152600090612710906001600160a01b038816906373c6f3789060240160206040518083038186803b15801561085857600080fd5b505afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906127e1565b61089a9085612810565b6108a4919061282f565b90506108b08184612851565b925060008215610a63576040516001600160a01b038a16908590600081818185875af1925050503d8060008114610903576040519150601f19603f3d011682016040523d82523d6000602084013e610908565b606091505b5050809150508061095b5760405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f2077697468647261772066756e6473000000000000000060448201526064016106ee565b6040516001600160a01b038616908390600081818185875af1925050503d80600081146109a4576040519150601f19603f3d011682016040523d82523d6000602084013e6109a9565b606091505b50508091505080610a085760405162461bcd60e51b8152602060048201526024808201527f6661696c656420746f2077697468647261772066756e647320746f20726567696044820152637374727960e01b60648201526084016106ee565b876001600160a01b0316896001600160a01b03167f080a49aa43b33f2f3fe14496cbedde2305f0cc484e98afb78e943cf9881adc8a8685604051610a56929190918252602082015260400190565b60405180910390a3610c82565b60405163a9059cbb60e01b81526001600160a01b038a811660048301526024820186905287169063a9059cbb90604401602060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190612868565b905080610b345760405162461bcd60e51b815260206004820152601a60248201527f6661696c656420746f207472616e73666572207061796d656e7400000000000060448201526064016106ee565b60405163a9059cbb60e01b81526001600160a01b0386811660048301526024820184905287169063a9059cbb90604401602060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612868565b905080610c2b5760405162461bcd60e51b815260206004820152602660248201527f6661696c656420746f207472616e73666572207061796d656e7420746f20726560448201527f676973747279000000000000000000000000000000000000000000000000000060648201526084016106ee565b876001600160a01b0316896001600160a01b03167f080a49aa43b33f2f3fe14496cbedde2305f0cc484e98afb78e943cf9881adc8a8685604051610c79929190918252602082015260400190565b60405180910390a35b505050505050505050565b60006001600160e01b03198216635a05180f60e01b1480610cb25750610cb2826119cf565b92915050565b600082815260208190526040902060010154610cd48133611a04565b610cde8383611a82565b505050565b6001600160a01b0381163314610d615760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016106ee565b610d6b8282611aa4565b5050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610e135760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b610e1c81611ac6565b610e7a5760405162461bcd60e51b815260206004820152602960248201527f50726f746f636f6c436f6e74726f6c3a2070726f766964657220736861726573604482015268103a37b7903637bb9760b91b60648201526084016106ee565b600780546001600160a01b0319166001600160a01b03831690811790915560405190815260009030907f55a6d5ecee94ad7f72b42efa05adae50807422b98f5c511cf7f0a0205b65b7519060200160405180910390a350565b600254610100900460ff16610eee5760025460ff1615610ef2565b303b155b610f645760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ee565b600254610100900460ff16158015610f86576002805461ffff19166101011790555b8151610f999060099060208501906122b8565b50600680546001600160a01b0386166001600160a01b0319918216179091556007805490911630179055610fce600084611cf3565b8015610fe0576002805461ff00191690555b50505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661108a5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b61109381611ac6565b6110f15760405162461bcd60e51b815260206004820152602960248201527f50726f746f636f6c436f6e74726f6c3a2070726f766964657220736861726573604482015268103a37b7903637bb9760b91b60648201526084016106ee565b6001600160a01b0382811660008181526005602090815260409182902080546001600160a01b03191694861694851790559051928352909130917f55a6d5ecee94ad7f72b42efa05adae50807422b98f5c511cf7f0a0205b65b751910160405180910390a35050565b60008281526001602052604081206111729083611cfd565b9392505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661121d5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b610cde6009838361233c565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166112cd5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b50600081815260046020818152604080842080548251808501829052808401889052835180820385018152606090910190935282519284019290922086865293909252919260019261132090849061288a565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917ff0d0fe9ecd941ad0096a6b95e0998ddcd76ba6a240a106fef284fc2d4f0caa419190a392915050565b6008546000906001600160a01b031661141e57600660009054906101000a90046001600160a01b03166001600160a01b031663f645d4f96040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e157600080fd5b505afa1580156113f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141991906127c4565b905090565b506008546001600160a01b031690565b60608167ffffffffffffffff8111156114495761144961249b565b60405190808252806020026020018201604052801561147c57816020015b60608152602001906001900390816114675790505b50905060005b8281101561151c576114ec308585848181106114a0576114a06128a2565b90506020028101906114b291906128b8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d0992505050565b8282815181106114fe576114fe6128a2565b6020026020010181905250808061151490612906565b915050611482565b5092915050565b6000818152600460205260409020546060908067ffffffffffffffff81111561154e5761154e61249b565b604051908082528060200260200182016040528015611577578160200160208202803683370190505b50915060005b8181101561160d57604080516020810183905290810185905260009060600160408051601f1981840301815291815281516020928301206000818152600390935291205485519192506001600160a01b0316908590849081106115e2576115e26128a2565b6001600160a01b03909216602092830291909101909101525061160660018261288a565b905061157d565b5050919050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166116b85760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f9d90a82ec1d038d4e13317a0eb136f9c65b7ed42156fc204ec4b7c4731e739509060200160405180910390a150565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166117b05760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b6000828152600360205260409020546001600160a01b031661183a5760405162461bcd60e51b815260206004820152603660248201527f50726f746f636f6c436f6e74726f6c3a2061206d6f64756c652077697468207460448201527f68697320494420646f6573206e6f742065786973742e0000000000000000000060648201526084016106ee565b60008281526003602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917ff0d0fe9ecd941ad0096a6b95e0998ddcd76ba6a240a106fef284fc2d4f0caa419190a35050565b6000818152600160205260408120610cb290611d2e565b6000828152602081905260409020600101546118c68133611a04565b610cde8383611aa4565b600980546118dd90612921565b80601f016020809104026020016040519081016040528092919081815260200182805461190990612921565b80156119565780601f1061192b57610100808354040283529160200191611956565b820191906000526020600020905b81548152906001019060200180831161193957829003601f168201915b505050505081565b6001600160a01b0380821660009081526005602052604081205490911680610cb25750506007546001600160a01b0316919050565b3b151590565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480610cb25750506001600160a01b03161590565b60006001600160e01b03198216637965db0b60e01b1480610cb257506301ffc9a760e01b6001600160e01b0319831614610cb2565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610d6b57611a40816001600160a01b03166014611d38565b611a4b836020611d38565b604051602001611a5c92919061295c565b60408051601f198184030181529082905262461bcd60e51b82526106ee916004016125df565b611a8c8282611ee1565b6000828152600160205260409020610cde9082611f7f565b611aae8282611f94565b6000828152600160205260409020610cde9082612013565b600654604080516361d027b360e01b8152905160009284926001600160a01b0391821692859285169163ce7c2ac29185916361d027b3916004808301926020929190829003018186803b158015611b1c57600080fd5b505afa158015611b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5491906127c4565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb91906127e1565b90506000836001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0857600080fd5b505afa158015611c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4091906127e1565b9050600081611c5161271085612810565b611c5b919061282f565b604051630e78de6f60e31b8152306004820152909150600a9081906001600160a01b038716906373c6f3789060240160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906127e1565b611ce49190612851565b90911015979650505050505050565b610d6b8282611a82565b60006111728383612028565b60606111728383604051806060016040528060278152602001612a2760279139612052565b6000610cb2825490565b60606000611d47836002612810565b611d5290600261288a565b67ffffffffffffffff811115611d6a57611d6a61249b565b6040519080825280601f01601f191660200182016040528015611d94576020820181803683370190505b509050600360fc1b81600081518110611daf57611daf6128a2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611dde57611dde6128a2565b60200101906001600160f81b031916908160001a9053506000611e02846002612810565b611e0d90600161288a565b90505b6001811115611e92577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611e4e57611e4e6128a2565b1a60f81b828281518110611e6457611e646128a2565b60200101906001600160f81b031916908160001a90535060049490941c93611e8b816129dd565b9050611e10565b5083156111725760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106ee565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610d6b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611f3b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611172836001600160a01b03841661213d565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610d6b576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611172836001600160a01b03841661218c565b600082600001828154811061203f5761203f6128a2565b9060005260206000200154905092915050565b6060833b6120c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016106ee565b600080856001600160a01b0316856040516120e391906129f4565b600060405180830381855af49150503d806000811461211e576040519150601f19603f3d011682016040523d82523d6000602084013e612123565b606091505b509150915061213382828661227f565b9695505050505050565b600081815260018301602052604081205461218457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cb2565b506000610cb2565b600081815260018301602052604081205480156122755760006121b0600183612851565b85549091506000906121c490600190612851565b90508181146122295760008660000182815481106121e4576121e46128a2565b9060005260206000200154905080876000018481548110612207576122076128a2565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061223a5761223a612a10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cb2565b6000915050610cb2565b6060831561228e575081611172565b82511561229e5782518084602001fd5b8160405162461bcd60e51b81526004016106ee91906125df565b8280546122c490612921565b90600052602060002090601f0160209004810192826122e6576000855561232c565b82601f106122ff57805160ff191683800117855561232c565b8280016001018555821561232c579182015b8281111561232c578251825591602001919060010190612311565b506123389291506123b0565b5090565b82805461234890612921565b90600052602060002090601f01602090048101928261236a576000855561232c565b82601f106123835782800160ff1982351617855561232c565b8280016001018555821561232c579182015b8281111561232c578235825591602001919060010190612395565b5b8082111561233857600081556001016123b1565b6001600160a01b03811681146123da57600080fd5b50565b600080604083850312156123f057600080fd5b82356123fb816123c5565b9150602083013561240b816123c5565b809150509250929050565b60006020828403121561242857600080fd5b81356001600160e01b03198116811461117257600080fd5b60006020828403121561245257600080fd5b5035919050565b6000806040838503121561246c57600080fd5b82359150602083013561240b816123c5565b60006020828403121561249057600080fd5b8135611172816123c5565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156124c657600080fd5b83356124d1816123c5565b925060208401356124e1816123c5565b9150604084013567ffffffffffffffff808211156124fe57600080fd5b818601915086601f83011261251257600080fd5b8135818111156125245761252461249b565b604051601f8201601f19908116603f0116810190838211818310171561254c5761254c61249b565b8160405282815289602084870101111561256557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60005b838110156125a257818101518382015260200161258a565b83811115610fe05750506000910152565b600081518084526125cb816020860160208601612587565b601f01601f19169290920160200192915050565b60208152600061117260208301846125b3565b6000806040838503121561260557600080fd5b50508035926020909101359150565b6000806020838503121561262757600080fd5b823567ffffffffffffffff8082111561263f57600080fd5b818501915085601f83011261265357600080fd5b81358181111561266257600080fd5b86602082850101111561267457600080fd5b60209290920196919550909350505050565b6000806040838503121561269957600080fd5b82356126a4816123c5565b946020939093013593505050565b600080602083850312156126c557600080fd5b823567ffffffffffffffff808211156126dd57600080fd5b818501915085601f8301126126f157600080fd5b81358181111561270057600080fd5b8660208260051b850101111561267457600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561276a57603f198886030184526127588583516125b3565b9450928501929085019060010161273c565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156127b85783516001600160a01b031683529284019291840191600101612793565b50909695505050505050565b6000602082840312156127d657600080fd5b8151611172816123c5565b6000602082840312156127f357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561282a5761282a6127fa565b500290565b60008261284c57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612863576128636127fa565b500390565b60006020828403121561287a57600080fd5b8151801515811461117257600080fd5b6000821982111561289d5761289d6127fa565b500190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126128cf57600080fd5b83018035915067ffffffffffffffff8211156128ea57600080fd5b6020019150368190038213156128ff57600080fd5b9250929050565b600060001982141561291a5761291a6127fa565b5060010190565b600181811c9082168061293557607f821691505b6020821081141561295657634e487b7160e01b600052602260045260246000fd5b50919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612994816017850160208801612587565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516129d1816028840160208801612587565b01602801949350505050565b6000816129ec576129ec6127fa565b506000190190565b60008251612a06818460208701612587565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$a = function isSuperArgs(xs) {
return xs.length > 1;
};
var ControlDeployer__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ControlDeployer__factory, _ContractFactory);
function ControlDeployer__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$a(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$P, _bytecode$a, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ControlDeployer__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ControlDeployer__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$P);
};
ControlDeployer__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$P, signerOrProvider);
};
return ControlDeployer__factory;
}(ContractFactory);
ControlDeployer__factory.bytecode = _bytecode$a;
ControlDeployer__factory.abi = _abi$P;
var _abi$Q = [{
inputs: [{
internalType: "address payable",
name: "_controlCenterAddress",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "EDITOR_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
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: "uint256",
name: "_key",
type: "uint256"
}],
name: "getUint",
outputs: [{
internalType: "uint256",
name: "value",
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: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_key",
type: "uint256"
}, {
internalType: "uint256",
name: "_value",
type: "uint256"
}],
name: "setUint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$b = "0x60806040523480156200001157600080fd5b506040516200175b3803806200175b83398101604081905262000034916200035d565b600280546001600160a01b038085166001600160a01b031992831617909255600480549286169290911691909117905580516200007990600390602084019062000288565b506200009060006200008a620000c8565b620000e4565b620000bf7f21d1167972f621f75904fb065136bc8b53c7ba1c60ccd3a7758fbee465851e9c6200008a620000c8565b505050620004a4565b6000620000df620000f460201b620006621760201c565b905090565b620000f082826200012d565b5050565b6002546000906001600160a01b031633141562000118575060131936013560601c90565b620000df6200017060201b6200068f1760201c565b6200014482826200017460201b620006931760201c565b60008281526001602090815260409091206200016b9183906200073262000216821b17901c565b505050565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000f0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001d2620000c8565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200022d836001600160a01b03841662000236565b90505b92915050565b60008181526001830160205260408120546200027f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000230565b50600062000230565b828054620002969062000467565b90600052602060002090601f016020900481019282620002ba576000855562000305565b82601f10620002d557805160ff191683800117855562000305565b8280016001018555821562000305579182015b8281111562000305578251825591602001919060010190620002e8565b506200031392915062000317565b5090565b5b8082111562000313576000815560010162000318565b6001600160a01b03811681146200034457600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200037357600080fd5b835162000380816200032e565b8093505060208085015162000395816200032e565b60408601519093506001600160401b0380821115620003b357600080fd5b818701915087601f830112620003c857600080fd5b815181811115620003dd57620003dd62000347565b604051601f8201601f19908116603f0116810190838211818310171562000408576200040862000347565b816040528281528a868487010111156200042157600080fd5b600093505b8284101562000445578484018601518185018701529285019262000426565b82841115620004575760008684830101525b8096505050505050509250925092565b600181811c908216806200047c57607f821691505b602082108114156200049e57634e487b7160e01b600052602260045260246000fd5b50919050565b6112a780620004b46000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063938e3d7b11610097578063ac9650d811610066578063ac9650d81461027f578063ca15c8731461029f578063d547741f146102b2578063e8a3d485146102c557600080fd5b8063938e3d7b1461021d578063a217fddf14610230578063a853211a14610238578063a9c70eaa1461025f57600080fd5b8063572b6c05116100d3578063572b6c051461018657806361e3c944146101a85780639010d07c146101bb57806391d14854146101e657600080fd5b806301ffc9a714610105578063248a9ca31461012d5780632f2ff15d1461015e57806336568abe14610173575b600080fd5b610118610113366004610e07565b6102da565b60405190151581526020015b60405180910390f35b61015061013b366004610e31565b60009081526020819052604090206001015490565b604051908152602001610124565b61017161016c366004610e66565b610305565b005b610171610181366004610e66565b610337565b610118610194366004610e92565b6002546001600160a01b0391821691161490565b6101716101b6366004610ead565b6103d8565b6101ce6101c9366004610ead565b610418565b6040516001600160a01b039091168152602001610124565b6101186101f4366004610e66565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61017161022b366004610ecf565b610437565b610150600081565b6101507f21d1167972f621f75904fb065136bc8b53c7ba1c60ccd3a7758fbee465851e9c81565b61015061026d366004610e31565b60009081526005602052604090205490565b61029261028d366004610f41565b61049c565b6040516101249190611000565b6101506102ad366004610e31565b610591565b6101716102c0366004610e66565b6105a8565b6102cd6105d0565b6040516101249190611062565b60006001600160e01b03198216635a05180f60e01b14806102ff57506102ff82610747565b92915050565b6000828152602081905260409020600101546103288161032361077c565b610786565b6103328383610804565b505050565b61033f61077c565b6001600160a01b0316816001600160a01b0316146103ca5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6103d48282610826565b5050565b7f21d1167972f621f75904fb065136bc8b53c7ba1c60ccd3a7758fbee465851e9c6104058161032361077c565b5060009182526005602052604090912055565b60008281526001602052604081206104309083610848565b9392505050565b61044460006101f461077c565b6104905760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c650000000000000000000060448201526064016103c1565b61033260038383610d6e565b60608167ffffffffffffffff8111156104b7576104b7611075565b6040519080825280602002602001820160405280156104ea57816020015b60608152602001906001900390816104d55790505b50905060005b8281101561058a5761055a3085858481811061050e5761050e61108b565b905060200281019061052091906110a1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061085492505050565b82828151811061056c5761056c61108b565b6020026020010181905250808061058290611105565b9150506104f0565b5092915050565b60008181526001602052604081206102ff90610879565b6000828152602081905260409020600101546105c68161032361077c565b6103328383610826565b6060600380546105df90611120565b80601f016020809104026020016040519081016040528092919081815260200182805461060b90611120565b80156106585780601f1061062d57610100808354040283529160200191610658565b820191906000526020600020905b81548152906001019060200180831161063b57829003601f168201915b5050505050905090565b6002546000906001600160a01b0316331415610685575060131936013560601c90565b503390565b905090565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166103d4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556106ee61077c565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610430836001600160a01b038416610883565b60006001600160e01b03198216637965db0b60e01b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b600061068a610662565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166103d4576107c2816001600160a01b031660146108d2565b6107cd8360206108d2565b6040516020016107de92919061115b565b60408051601f198184030181529082905262461bcd60e51b82526103c191600401611062565b61080e8282610693565b60008281526001602052604090206103329082610732565b6108308282610a7b565b60008281526001602052604090206103329082610b18565b60006104308383610b2d565b6060610430838360405180606001604052806027815260200161127460279139610b57565b60006102ff825490565b60008181526001830160205260408120546108ca575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102ff565b5060006102ff565b606060006108e18360026111dc565b6108ec9060026111fb565b67ffffffffffffffff81111561090457610904611075565b6040519080825280601f01601f19166020018201604052801561092e576020820181803683370190505b509050600360fc1b816000815181106109495761094961108b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106109785761097861108b565b60200101906001600160f81b031916908160001a905350600061099c8460026111dc565b6109a79060016111fb565b90505b6001811115610a2c577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106109e8576109e861108b565b1a60f81b8282815181106109fe576109fe61108b565b60200101906001600160f81b031916908160001a90535060049490941c93610a2581611213565b90506109aa565b5083156104305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103c1565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156103d4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055610ad461077c565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610430836001600160a01b038416610c42565b6000826000018281548110610b4457610b4461108b565b9060005260206000200154905092915050565b6060833b610bcd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016103c1565b600080856001600160a01b031685604051610be8919061122a565b600060405180830381855af49150503d8060008114610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b5091509150610c38828286610d35565b9695505050505050565b60008181526001830160205260408120548015610d2b576000610c66600183611246565b8554909150600090610c7a90600190611246565b9050818114610cdf576000866000018281548110610c9a57610c9a61108b565b9060005260206000200154905080876000018481548110610cbd57610cbd61108b565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610cf057610cf061125d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102ff565b60009150506102ff565b60608315610d44575081610430565b825115610d545782518084602001fd5b8160405162461bcd60e51b81526004016103c19190611062565b828054610d7a90611120565b90600052602060002090601f016020900481019282610d9c5760008555610de2565b82601f10610db55782800160ff19823516178555610de2565b82800160010185558215610de2579182015b82811115610de2578235825591602001919060010190610dc7565b50610dee929150610df2565b5090565b5b80821115610dee5760008155600101610df3565b600060208284031215610e1957600080fd5b81356001600160e01b03198116811461043057600080fd5b600060208284031215610e4357600080fd5b5035919050565b80356001600160a01b0381168114610e6157600080fd5b919050565b60008060408385031215610e7957600080fd5b82359150610e8960208401610e4a565b90509250929050565b600060208284031215610ea457600080fd5b61043082610e4a565b60008060408385031215610ec057600080fd5b50508035926020909101359150565b60008060208385031215610ee257600080fd5b823567ffffffffffffffff80821115610efa57600080fd5b818501915085601f830112610f0e57600080fd5b813581811115610f1d57600080fd5b866020828501011115610f2f57600080fd5b60209290920196919550909350505050565b60008060208385031215610f5457600080fd5b823567ffffffffffffffff80821115610f6c57600080fd5b818501915085601f830112610f8057600080fd5b813581811115610f8f57600080fd5b8660208260051b8501011115610f2f57600080fd5b60005b83811015610fbf578181015183820152602001610fa7565b83811115610fce576000848401525b50505050565b60008151808452610fec816020860160208601610fa4565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561105557603f19888603018452611043858351610fd4565b94509285019290850190600101611027565b5092979650505050505050565b6020815260006104306020830184610fd4565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126110b857600080fd5b83018035915067ffffffffffffffff8211156110d357600080fd5b6020019150368190038213156110e857600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415611119576111196110ef565b5060010190565b600181811c9082168061113457607f821691505b6020821081141561115557634e487b7160e01b600052602260045260246000fd5b50919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611193816017850160208801610fa4565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516111d0816028840160208801610fa4565b01602801949350505050565b60008160001904831182151516156111f6576111f66110ef565b500290565b6000821982111561120e5761120e6110ef565b500190565b600081611222576112226110ef565b506000190190565b6000825161123c818460208701610fa4565b9190910192915050565b600082821015611258576112586110ef565b500390565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$b = function isSuperArgs(xs) {
return xs.length > 1;
};
var DataStore__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(DataStore__factory, _ContractFactory);
function DataStore__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$b(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$Q, _bytecode$b, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = DataStore__factory.prototype;
_proto.deploy = function deploy(_controlCenterAddress, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenterAddress, _trustedForwarder, _uri, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenterAddress, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenterAddress, _trustedForwarder, _uri, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
DataStore__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$Q);
};
DataStore__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$Q, signerOrProvider);
};
return DataStore__factory;
}(ContractFactory);
DataStore__factory.bytecode = _bytecode$b;
DataStore__factory.abi = _abi$Q;
var _abi$R = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
inputs: [{
components: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "gas",
type: "uint256"
}, {
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
internalType: "struct Forwarder.ForwardRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "execute",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}],
name: "getNonce",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "gas",
type: "uint256"
}, {
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
internalType: "struct Forwarder.ForwardRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "verify",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$c = "0x61014060405234801561001157600080fd5b50604080518082018252600f81526e23a9a73b19102337b93bb0b93232b960891b602080830191825283518085019094526005845264302e302e3160d81b908401528151902060e08190527fae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc1991638118856101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6100fa8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c052610120525061010f92505050565b60805160a05160c05160e0516101005161012051610cc461015e6000396000610586015260006105d5015260006105b001526000610509015260006105330152600061055d0152610cc46000f3fe6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610082578063bf5d3bdb146100a3575b600080fd5b34801561004557600080fd5b5061006f610054366004610986565b6001600160a01b031660009081526020819052604090205490565b6040519081526020015b60405180910390f35b6100956100903660046109b6565b6100d3565b604051610079929190610ab1565b3480156100af57600080fd5b506100c36100be3660046109b6565b610306565b6040519015158152602001610079565b600060606100e2858585610306565b6101595760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f657360448201527f206e6f74206d617463682072657175657374000000000000000000000000000060648201526084015b60405180910390fd5b61016860808601356001610ad4565b6000806101786020890189610986565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101b29190610986565b6001600160a01b0316606088013560408901356101d260a08b018b610afa565b6101df60208d018d610986565b6040516020016101f193929190610b41565b60408051601f198184030181529082905261020b91610b67565b600060405180830381858888f193505050503d8060008114610249576040519150601f19603f3d011682016040523d82523d6000602084013e61024e565b606091505b5091509150816102dd576044815110156102aa5760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006044820152606401610150565b600481019050808060200190518101906102c49190610b99565b60405162461bcd60e51b81526004016101509190610c46565b6102ec603f6060890135610c59565b5a116102fa576102fa610c7b565b90969095509350505050565b60008061041984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061041392507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610376905060208a018a610986565b61038660408b0160208c01610986565b60408b013560608c013560808d01356103a260a08f018f610afa565b6040516103b0929190610c91565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e08101919091526101000160405160208183030381529060405280519060200120610484565b906104d8565b905060808501356000806104306020890189610986565b6001600160a01b03166001600160a01b031681526020019081526020016000205414801561047b57506104666020860186610986565b6001600160a01b0316816001600160a01b0316145b95945050505050565b60006104d26104916104fc565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b60008060006104e78585610623565b915091506104f481610693565b509392505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561055557507f000000000000000000000000000000000000000000000000000000000000000046145b1561057f57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041141561065a5760208301516040840151606085015160001a61064e87828585610851565b9450945050505061068c565b825160401415610684576020830151604084015161067986838361093e565b93509350505061068c565b506000905060025b9250929050565b60008160048111156106a7576106a7610ca1565b14156106b05750565b60018160048111156106c4576106c4610ca1565b14156107125760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610150565b600281600481111561072657610726610ca1565b14156107745760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610150565b600381600481111561078857610788610ca1565b14156107e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610150565b60048160048111156107f5576107f5610ca1565b141561084e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610150565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156108885750600090506003610935565b8460ff16601b141580156108a057508460ff16601c14155b156108b15750600090506004610935565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610905573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661092e57600060019250925050610935565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b0161097887828885610851565b935093505050935093915050565b60006020828403121561099857600080fd5b81356001600160a01b03811681146109af57600080fd5b9392505050565b6000806000604084860312156109cb57600080fd5b833567ffffffffffffffff808211156109e357600080fd5b9085019060c082880312156109f757600080fd5b90935060208501359080821115610a0d57600080fd5b818601915086601f830112610a2157600080fd5b813581811115610a3057600080fd5b876020828501011115610a4257600080fd5b6020830194508093505050509250925092565b60005b83811015610a70578181015183820152602001610a58565b83811115610a7f576000848401525b50505050565b60008151808452610a9d816020860160208601610a55565b601f01601f19169290920160200192915050565b8215158152604060208201526000610acc6040830184610a85565b949350505050565b60008219821115610af557634e487b7160e01b600052601160045260246000fd5b500190565b6000808335601e19843603018112610b1157600080fd5b83018035915067ffffffffffffffff821115610b2c57600080fd5b60200191503681900382131561068c57600080fd5b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610b79818460208701610a55565b9190910192915050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610bab57600080fd5b815167ffffffffffffffff80821115610bc357600080fd5b818401915084601f830112610bd757600080fd5b815181811115610be957610be9610b83565b604051601f8201601f19908116603f01168101908382118183101715610c1157610c11610b83565b81604052828152876020848701011115610c2a57600080fd5b610c3b836020830160208801610a55565b979650505050505050565b6020815260006109af6020830184610a85565b600082610c7657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052600160045260246000fd5b8183823760009101908152919050565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$c = function isSuperArgs(xs) {
return xs.length > 1;
};
var Forwarder__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Forwarder__factory, _ContractFactory);
function Forwarder__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$c(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$R, _bytecode$c, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Forwarder__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Forwarder__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$R);
};
Forwarder__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$R, signerOrProvider);
};
return Forwarder__factory;
}(ContractFactory);
Forwarder__factory.bytecode = _bytecode$c;
Forwarder__factory.abi = _abi$R;
/* Autogenerated file. Do not edit manually. */
var _abi$S = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "registry",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "deployer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "control",
type: "address"
}],
name: "DeployedControl",
type: "event"
}, {
inputs: [{
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "address",
name: "deployer",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}],
name: "deployControl",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "nonpayable",
type: "function"
}];
var IControlDeployer__factory = /*#__PURE__*/function () {
function IControlDeployer__factory() {}
IControlDeployer__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$S);
};
IControlDeployer__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$S, signerOrProvider);
};
return IControlDeployer__factory;
}();
IControlDeployer__factory.abi = _abi$S;
/* Autogenerated file. Do not edit manually. */
var _abi$T = [{
inputs: [],
name: "deposit",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "withdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IWETH__factory = /*#__PURE__*/function () {
function IWETH__factory() {}
IWETH__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$T);
};
IWETH__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$T, signerOrProvider);
};
return IWETH__factory;
}();
IWETH__factory.abi = _abi$T;
/* Autogenerated file. Do not edit manually. */
var _abi$U = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "baseURI",
type: "string"
}],
name: "LazyMintedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC1155.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "bool",
name: "isDefaultRecipient",
type: "bool"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "_receiver",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_amount",
type: "uint256"
}, {
internalType: "string",
name: "_baseURIForTokens",
type: "string"
}],
name: "lazyMint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC1155.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var ILazyMintERC1155__factory = /*#__PURE__*/function () {
function ILazyMintERC1155__factory() {}
ILazyMintERC1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$U);
};
ILazyMintERC1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$U, signerOrProvider);
};
return ILazyMintERC1155__factory;
}();
ILazyMintERC1155__factory.abi = _abi$U;
var _abi$V = [{
inputs: [{
internalType: "string",
name: "_contractURI",
type: "string"
}, {
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}, {
internalType: "uint128",
name: "_royaltyBps",
type: "uint128"
}, {
internalType: "uint128",
name: "_feeBps",
type: "uint128"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "baseURI",
type: "string"
}],
name: "LazyMintedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC1155.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "bool",
name: "isDefaultRecipient",
type: "bool"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
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: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "NATIVE_TOKEN",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "VERSION",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_receiver",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "claimConditions",
outputs: [{
internalType: "uint256",
name: "totalConditionCount",
type: "uint256"
}, {
internalType: "uint256",
name: "timstampLimitIndex",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "defaultSaleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
outputs: [{
internalType: "uint120",
name: "",
type: "uint120"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_index",
type: "uint256"
}],
name: "getClaimConditionAtIndex",
outputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC1155.ClaimCondition",
name: "mintCondition",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "getIndexOfActiveCondition",
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: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_index",
type: "uint256"
}, {
internalType: "address",
name: "_claimer",
type: "address"
}],
name: "getTimestampForNextValidClaim",
outputs: [{
internalType: "uint256",
name: "nextValidTimestampForClaim",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_amount",
type: "uint256"
}, {
internalType: "string",
name: "_baseURIForTokens",
type: "string"
}],
name: "lazyMint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "saleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "uint256",
name: "_tokenId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC1155.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setDefaultSaleRecipient",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setSaleRecipient",
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: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "tokenURI",
outputs: [{
internalType: "string",
name: "_tokenURI",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC1155.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "updateClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "_tokenURI",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_claimer",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}, {
internalType: "uint256",
name: "_conditionIndex",
type: "uint256"
}],
name: "verifyClaim",
outputs: [],
stateMutability: "view",
type: "function"
}];
var _bytecode$d = "0x60a06040523480156200001157600080fd5b5060405162005ef638038062005ef6833981016040819052620000349162000446565b604080516020810190915260008152859062000050816200017c565b50600380546001600160a01b03199081166001600160a01b03938416179091556001600655600c80548216898416179055858216608052600880549091169185169190911790558651620000ac90600b9060208a019062000355565b50600a80546001600160781b03831668010000000000000000026001600160b81b03199091166001600160401b038516171790556000620000ec62000195565b600780546001600160a01b0319166001600160a01b038316179055905062000116600082620001b1565b620001427f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682620001b1565b6200016e7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c82620001b1565b5050505050505050620005d1565b80516200019190600290602084019062000355565b5050565b6000620001ac620001bd60201b6200239d1760201c565b905090565b620001918282620001f6565b6003546000906001600160a01b0316331415620001e1575060131936013560601c90565b620001ac6200023960201b620023c81760201c565b6200020d82826200023d60201b620023cc1760201c565b6000828152600560209081526040909120620002349183906200246f620002e3821b17901c565b505050565b3390565b60008281526004602090815260408083206001600160a01b038516845290915290205460ff16620001915760008281526004602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200029f62000195565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002fa836001600160a01b03841662000303565b90505b92915050565b60008181526001830160205260408120546200034c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002fd565b506000620002fd565b828054620003639062000594565b90600052602060002090601f016020900481019282620003875760008555620003d2565b82601f10620003a257805160ff1916838001178555620003d2565b82800160010185558215620003d2579182015b82811115620003d2578251825591602001919060010190620003b5565b50620003e0929150620003e4565b5090565b5b80821115620003e05760008155600101620003e5565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200042957600080fd5b919050565b80516001600160801b03811681146200042957600080fd5b600080600080600080600060e0888a0312156200046257600080fd5b87516001600160401b03808211156200047a57600080fd5b818a0191508a601f8301126200048f57600080fd5b815181811115620004a457620004a4620003fb565b604051601f8201601f19908116603f01168101908382118183101715620004cf57620004cf620003fb565b81604052828152602093508d84848701011115620004ec57600080fd5b600091505b82821015620005105784820184015181830185015290830190620004f1565b82821115620005225760008484830101525b9a50620005349150508a820162000411565b97505050620005466040890162000411565b9450620005566060890162000411565b9350620005666080890162000411565b92506200057660a089016200042e565b91506200058660c089016200042e565b905092959891949750929550565b600181811c90821680620005a957607f821691505b60208210811415620005cb57634e487b7160e01b600052602260045260246000fd5b50919050565b6080516158ed6200060960003960008181610b830152818161388f0152818161398a015281816144c4015261453b01526158ed6000f3fe60806040526004361061033e5760003560e01c80638ba448c2116101b0578063c87b56dd116100ec578063e985e9c511610095578063f4cebfe61161006f578063f4cebfe614610b31578063f5298aca14610b51578063f9ea29cb14610b71578063ffa1ad7414610ba557600080fd5b8063e985e9c514610aa8578063eb56a8e514610af1578063f242432a14610b1157600080fd5b8063d5391393116100c6578063d539139314610a3f578063d547741f14610a73578063e8a3d48514610a9357600080fd5b8063c87b56dd14610975578063ca15c87314610995578063cc959914146109b557600080fd5b80639e45e46611610159578063ac9650d811610133578063ac9650d8146108ab578063bd85b039146108d8578063c63adb2b14610905578063c7337d6b1461093f57600080fd5b80639e45e46614610856578063a217fddf14610876578063a22cb4651461088b57600080fd5b80639010d07c1161018a5780639010d07c146107d057806391d14854146107f0578063938e3d7b1461083657600080fd5b80638ba448c21461077b5780638d8b4f381461079b5780638da5cb5b146107bb57600080fd5b80632f2ff15d1161027f5780634e1273f41161022857806372c27b621161020257806372c27b62146106d157806372cc0198146106f15780638423df7914610711578063860ec5d11461073257600080fd5b80634e1273f414610655578063572b6c05146106825780636b20c454146106b157600080fd5b80633b1475a7116102595780633b1475a7146105ff57806347158264146106155780634d4529a01461063557600080fd5b80632f2ff15d1461059757806331f7d964146105b757806336568abe146105df57600080fd5b80631f72d831116102ec578063248a9ca3116102c6578063248a9ca3146104b457806324a9d853146104e45780632a55205a146105385780632eb2c2d61461057757600080fd5b80631f72d83114610428578063206b60f914610448578063246b436b1461047c57600080fd5b806313af40351161031d57806313af4035146103d35780631490ee76146103f5578063172bd6de1461041557600080fd5b8062fdd58e1461034357806301ffc9a7146103765780630e89341c146103a6575b600080fd5b34801561034f57600080fd5b5061036361035e3660046149de565b610bba565b6040519081526020015b60405180910390f35b34801561038257600080fd5b50610396610391366004614a20565b610c66565b604051901515815260200161036d565b3480156103b257600080fd5b506103c66103c1366004614a3d565b610c9c565b60405161036d9190614aae565b3480156103df57600080fd5b506103f36103ee366004614ac1565b610d59565b005b34801561040157600080fd5b506103f3610410366004614ac1565b610e8e565b6103f3610423366004614b2a565b610f35565b34801561043457600080fd5b506103f3610443366004614a3d565b6110b1565b34801561045457600080fd5b506103637f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b34801561048857600080fd5b5060085461049c906001600160a01b031681565b6040516001600160a01b03909116815260200161036d565b3480156104c057600080fd5b506103636104cf366004614a3d565b60009081526004602052604090206001015490565b3480156104f057600080fd5b50600a54610518906801000000000000000090046effffffffffffffffffffffffffffff1681565b6040516effffffffffffffffffffffffffffff909116815260200161036d565b34801561054457600080fd5b50610558610553366004614b94565b611194565b604080516001600160a01b03909316835260208301919091520161036d565b34801561058357600080fd5b506103f3610592366004614d02565b611245565b3480156105a357600080fd5b506103f36105b2366004614db0565b6112f9565b3480156105c357600080fd5b5061049c73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156105eb57600080fd5b506103f36105fa366004614db0565b61132b565b34801561060b57600080fd5b5061036360095481565b34801561062157600080fd5b506103f3610630366004614e22565b6113c7565b34801561064157600080fd5b506103f3610650366004614db0565b6114ff565b34801561066157600080fd5b50610675610670366004614e6e565b6115b1565b60405161036d9190614f76565b34801561068e57600080fd5b5061039661069d366004614ac1565b6003546001600160a01b0391821691161490565b3480156106bd57600080fd5b506103f36106cc366004614f89565b6116ef565b3480156106dd57600080fd5b506103f36106ec366004614a3d565b611787565b3480156106fd57600080fd5b5061036361070c366004614a3d565b61188c565b34801561071d57600080fd5b50600a5461039690600160b81b900460ff1681565b34801561073e57600080fd5b5061076661074d366004614a3d565b6010602052600090815260409020805460019091015482565b6040805192835260208301919091520161036d565b34801561078757600080fd5b506103f361079636600461500d565b611993565b3480156107a757600080fd5b506103f36107b636600461502a565b611a48565b3480156107c757600080fd5b5061049c611aee565b3480156107dc57600080fd5b5061049c6107eb366004614b94565b611b47565b3480156107fc57600080fd5b5061039661080b366004614db0565b60009182526004602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561084257600080fd5b506103f36108513660046150a9565b611b66565b34801561086257600080fd5b506103f361087136600461502a565b611bbf565b34801561088257600080fd5b50610363600081565b34801561089757600080fd5b506103f36108a63660046150eb565b611c57565b3480156108b757600080fd5b506108cb6108c6366004615119565b611c69565b60405161036d919061514f565b3480156108e457600080fd5b506103636108f3366004614a3d565b600f6020526000908152604090205481565b34801561091157600080fd5b50600a546109269067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161036d565b34801561094b57600080fd5b5061049c61095a366004614a3d565b6011602052600090815260409020546001600160a01b031681565b34801561098157600080fd5b506103c6610990366004614a3d565b611d5e565b3480156109a157600080fd5b506103636109b0366004614a3d565b611d69565b3480156109c157600080fd5b506109d56109d0366004614b94565b611d80565b60405161036d9190600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c08301526001600160a01b0360e08401511660e083015292915050565b348015610a4b57600080fd5b506103637f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a7f57600080fd5b506103f3610a8e366004614db0565b611e55565b348015610a9f57600080fd5b506103c6611e7d565b348015610ab457600080fd5b50610396610ac33660046151b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b348015610afd57600080fd5b50610363610b0c3660046151df565b611f0b565b348015610b1d57600080fd5b506103f3610b2c366004615218565b611f88565b348015610b3d57600080fd5b506103f3610b4c366004615281565b612035565b348015610b5d57600080fd5b506103f3610b6c3660046152f3565b612305565b348015610b7d57600080fd5b5061049c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610bb157600080fd5b50610363600181565b60006001600160a01b038316610c3d5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b1480610c6057506001600160e01b0319821663152a902d60e11b1492915050565b606060005b600d54811015610d4357600d8181548110610cbe57610cbe615328565b9060005260206000200154831015610d3157600e6000600d8381548110610ce757610ce7615328565b90600052602060002001548152602001908152602001600020610d0984612484565b604051602001610d1a929190615395565b604051602081830303815290604052915050919050565b610d3c600182615452565b9050610ca1565b5050604080516020810190915260008152919050565b610d66600061080b612582565b610da65760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b6001600160a01b03811660009081527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602052604090205460ff16610e2d5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610c34565b600780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610e9b600061080b612582565b610edb5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b600880546001600160a01b0319166001600160a01b0383169081179091556040516001815260001991907fdfa24b2c84f4b56930965774ade10cc0167141522e42b2863e191e8426fdc7d39060200160405180910390a350565b60026006541415610f885760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026006556000610f988561188c565b600086815260106020908152604080832084845260029081018352928190208151610100810183528154815260018201549381019390935292830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e082015290915061102c611022612582565b8787878787612035565b61103781868861258c565b61104387838888612779565b61104b612582565b6001600160a01b031686837f6a0cd6a3776f014f53e21c0d2a6f3d460a49f21de66fda1a07daab28c4f718f38a8960405161109b9291906001600160a01b03929092168252602082015260400190565b60405180910390a4505060016006555050505050565b6110be600061080b612582565b6110fe5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b6127108111156111405760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610c34565b600a805467ffffffffffffffff191667ffffffffffffffff83161790556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b600c5460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b1580156111dc57600080fd5b505afa1580156111f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611214919061546a565b600a54909250612710906112329067ffffffffffffffff1685615487565b61123c91906154bc565b90509250929050565b61124d612582565b6001600160a01b0316856001600160a01b03161480611273575061127385610ac3612582565b6112e55760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610c34565b6112f28585858585612838565b5050505050565b60008281526004602052604090206001015461131c81611317612582565b612aa7565b6113268383612b27565b505050565b611333612582565b6001600160a01b0316816001600160a01b0316146113b95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610c34565b6113c38282612b49565b5050565b6113f37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661080b612582565b61143f5760405162461bcd60e51b815260206004820152600b60248201527f6e6f74206d696e7465722e0000000000000000000000000000000000000000006044820152606401610c34565b600954600061144e8583615452565b60098190556000818152600e6020526040902090915061146f90858561492d565b50600d8054600181810183556000929092527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5018290557f8d92b22f5855b4d8db025239efe923788e125b3fae327dbebdba3eb9dc4209479083906114d48883615452565b6114de91906154d0565b86866040516114f094939291906154e7565b60405180910390a15050505050565b61150c600061080b612582565b61154c5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b600082815260116020908152604080832080546001600160a01b0319166001600160a01b0386169081179091559051928352849290917fdfa24b2c84f4b56930965774ade10cc0167141522e42b2863e191e8426fdc7d3910160405180910390a35050565b6060815183511461162a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610c34565b6000835167ffffffffffffffff81111561164657611646614bb6565b60405190808252806020026020018201604052801561166f578160200160208202803683370190505b50905060005b84518110156116e7576116ba85828151811061169357611693615328565b60200260200101518583815181106116ad576116ad615328565b6020026020010151610bba565b8282815181106116cc576116cc615328565b60209081029190910101526116e081615524565b9050611675565b509392505050565b6116f7612582565b6001600160a01b0316836001600160a01b0316148061171d575061171d83610ac3612582565b61177c5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610c34565b611326838383612b6b565b611794600061080b612582565b6117d45760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b6127108111156118165760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610c34565b600a80547fffffffffffffffffff000000000000000000000000000000ffffffffffffffff16680100000000000000006effffffffffffffffffffffffffffff8416021790556040518181527f2440645f96173394eb0d508ef9d0c95e3ddc41c6a10ef86e547fc738df9ecce290602001611189565b600081815260106020526040812054806118e85760405162461bcd60e51b815260206004820152601960248201527f6e6f207075626c6963206d696e7420636f6e646974696f6e2e000000000000006044820152606401610c34565b805b801561194a5760008481526010602052604081206002019061190d6001846154d0565b8152602001908152602001600020600001544210611938576119306001826154d0565b949350505050565b6119436001826154d0565b90506118ea565b5060405162461bcd60e51b815260206004820152601960248201527f6e6f20616374697665206d696e7420636f6e646974696f6e2e000000000000006044820152606401610c34565b6119a0600061080b612582565b6119e05760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b600a8054821515600160b81b027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff9091161790556040517f2ebd4f59eaa9d49c5dcd06a0afa8b39bf09928fbd60111acee2f986fa485d0989061118990831515815260200190565b611a55600061080b612582565b611a955760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b6000611aa2848484612db9565b9050611aae84826131c2565b837f956477c5e2c5cb1058056ffe701dad74855fe3cc445bbfc11a42e384f0f509948484604051611ae092919061553f565b60405180910390a250505050565b6007546001600160a01b031660009081527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602052604081205460ff16611b355750600090565b6007546001600160a01b03165b905090565b6000828152600560205260408120611b5f90836131ec565b9392505050565b611b73600061080b612582565b611bb35760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b611326600b838361492d565b611bcc600061080b612582565b611c0c5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610c34565b611c17838383612db9565b50827f956477c5e2c5cb1058056ffe701dad74855fe3cc445bbfc11a42e384f0f509948383604051611c4a92919061553f565b60405180910390a2505050565b6113c3611c62612582565b83836131f8565b60608167ffffffffffffffff811115611c8457611c84614bb6565b604051908082528060200260200182016040528015611cb757816020015b6060815260200190600190039081611ca25790505b50905060005b82811015611d5757611d2730858584818110611cdb57611cdb615328565b9050602002810190611ced91906155d6565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132ed92505050565b828281518110611d3957611d39615328565b60200260200101819052508080611d4f90615524565b915050611cbd565b5092915050565b6060610c6082610c9c565b6000818152600560205260408120610c6090613312565b611dd46040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b031681525090565b50600091825260106020908152604080842092845260029283018252928390208351610100810185528154815260018201549281019290925291820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600701546001600160a01b031660e082015290565b600082815260046020526040902060010154611e7381611317612582565b6113268383612b49565b600b8054611e8a9061533e565b80601f0160208091040260200160405190810160405280929190818152602001828054611eb69061533e565b8015611f035780601f10611ed857610100808354040283529160200191611f03565b820191906000526020600020905b815481529060010190602001808311611ee657829003601f168201915b505050505081565b6000838152601060205260408120600101548190611f299085615452565b60008681526010602090815260408083206001600160a01b03881684526003810183528184208585528352818420548985526002909101909252909120600401548101935090915080831015611f7f5760001992505b50509392505050565b611f90612582565b6001600160a01b0316856001600160a01b03161480611fb65750611fb685610ac3612582565b6120285760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201527f20617070726f76656400000000000000000000000000000000000000000000006064820152608401610c34565b6112f2858585858561331c565b600085815260106020908152604080832084845260029081018352928190208151610100810183528154815260018201549381019390935292830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e082015284158015906120c4575080606001518511155b6121105760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207175616e7469747920636c61696d65642e000000000000006044820152606401610c34565b80602001518582604001516121259190615452565b11156121735760405162461bcd60e51b815260206004820152601760248201527f657863656564206d6178206d696e7420737570706c792e0000000000000000006044820152606401610c34565b60008681526010602052604081206001015461218f9084615452565b60008881526010602090815260408083206001600160a01b038d16845260030182528083208484529091528120549192506121cb89868c611f0b565b90508115806121da5750804210155b6122265760405162461bcd60e51b815260206004820152601160248201527f63616e6e6f7420636c61696d207965742e0000000000000000000000000000006044820152606401610c34565b60a0840151156122f9576040516bffffffffffffffffffffffff1960608c901b1660208201526000906034016040516020818303038152906040528051906020012090506122ab88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060a0870151836134d4565b6122f75760405162461bcd60e51b815260206004820152601160248201527f6e6f7420696e2077686974656c6973742e0000000000000000000000000000006044820152606401610c34565b505b50505050505050505050565b61230d612582565b6001600160a01b0316836001600160a01b03161480612333575061233383610ac3612582565b6123925760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610c34565b6113268383836134ea565b6003546000906001600160a01b03163314156123c0575060131936013560601c90565b503390565b90565b3390565b60008281526004602090815260408083206001600160a01b038516845290915290205460ff166113c35760008281526004602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561242b612582565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611b5f836001600160a01b03841661366e565b6060816124a85750506040805180820190915260018152600360fc1b602082015290565b8160005b81156124d257806124bc81615524565b91506124cb9050600a836154bc565b91506124ac565b60008167ffffffffffffffff8111156124ed576124ed614bb6565b6040519080825280601f01601f191660200182016040528015612517576020820181803683370190505b5090505b84156119305761252c6001836154d0565b9150612539600a8661561d565b612544906030615452565b60f81b81838151811061255957612559615328565b60200101906001600160f81b031916908160001a90535061257b600a866154bc565b945061251b565b6000611b4261239d565b60008360c001511161259d57505050565b60008360c00151836125af9190615487565b600a54909150600090612710906125e3906801000000000000000090046effffffffffffffffffffffffffffff1684615487565b6125ed91906154bc565b60e08601519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561266d578134146126685760405162461bcd60e51b815260206004820152601660248201527f6d7573742073656e6420746f74616c2070726963652e000000000000000000006044820152606401610c34565b612683565b612683612678612582565b8660e00151846136bd565b6127148560e00151612693612582565b600c5460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b1580156126d657600080fd5b505afa1580156126ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270e919061546a565b84613839565b60008381526011602052604090205460e08601516001600160a01b039091169061277190612740612582565b6001600160a01b038416156127555783612762565b6008546001600160a01b03165b61276c86886154d0565b613839565b505050505050565b6000828152601060209081526040808320868452600290810190925282200180548392906127a8908490615452565b90915550506000828152601060205260408120600101546127c99085615452565b60008481526010602052604081209192504291600301906127e8612582565b6001600160a01b03166001600160a01b031681526020019081526020016000206000838152602001908152602001600020819055506112f285848460405180602001604052806000815250613a1d565b815183511461289a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610c34565b6001600160a01b0384166128fe5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610c34565b6000612908612582565b9050612918818787878787613b29565b60005b8451811015612a4157600085828151811061293857612938615328565b60200260200101519050600085838151811061295657612956615328565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156129e95760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610c34565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612a26908490615452565b9250508190555050505080612a3a90615524565b905061291b565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612a91929190615631565b60405180910390a4612771818787878787613d44565b60008281526004602090815260408083206001600160a01b038516845290915290205460ff166113c357612ae5816001600160a01b03166014613ef9565b612af0836020613ef9565b604051602001612b01929190615656565b60408051601f198184030181529082905262461bcd60e51b8252610c3491600401614aae565b612b3182826123cc565b6000828152600560205260409020611326908261246f565b612b5382826140a2565b60008281526005602052604090206113269082614143565b6001600160a01b038316612bcd5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610c34565b8051825114612c2f5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610c34565b6000612c39612582565b9050612c5981856000868660405180602001604052806000815250613b29565b60005b8351811015612d5a576000848281518110612c7957612c79615328565b602002602001015190506000848381518110612c9757612c97615328565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015612d235760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610c34565b6000928352602083815260408085206001600160a01b038b1686529091529092209103905580612d5281615524565b915050612c5c565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612dab929190615631565b60405180910390a450505050565b60008060005b8381101561311357811580612def5750848482818110612de157612de1615328565b905061010002016000013582105b612e615760405162461bcd60e51b815260206004820152602a60248201527f737461727454696d657374616d70206d75737420626520696e20617363656e6460448201527f696e67206f726465722e000000000000000000000000000000000000000000006064820152608401610c34565b6000858583818110612e7557612e75615328565b905061010002016020013511612ecd5760405162461bcd60e51b815260206004820152601c60248201527f6d6178206d696e7420737570706c792063616e6e6f7420626520302e000000006044820152606401610c34565b6000858583818110612ee157612ee1615328565b905061010002016060013511612f395760405162461bcd60e51b815260206004820152601b60248201527f7175616e74697479206c696d69742063616e6e6f7420626520302e00000000006044820152606401610c34565b604051806101000160405280868684818110612f5757612f57615328565b90506101000201600001358152602001868684818110612f7957612f79615328565b9050610100020160200135815260200160008152602001868684818110612fa257612fa2615328565b90506101000201606001358152602001868684818110612fc457612fc4615328565b90506101000201608001358152602001868684818110612fe657612fe6615328565b9050610100020160a00135815260200186868481811061300857613008615328565b9050610100020160c00135815260200186868481811061302a5761302a615328565b9050610100020160e00160208101906130439190614ac1565b6001600160a01b039081169091526000888152601060209081526040808320888452600290810183529281902085518155918501516001808401919091559085015192820192909255606084015160038201556080840151600482015560a0840151600582015560c0840151600682015560e090930151600790930180546001600160a01b031916939092169290921790556130df9084615452565b92508484828181106130f3576130f3615328565b90506101000201600001359150808061310b90615524565b915050612dbf565b50600085815260106020526040902054808310156131a757825b818110156131a55760008781526010602090815260408083208484526002908101909252822082815560018082018490559181018390556003810183905560048101839055600581018390556006810192909255600790910180546001600160a01b031916905561319e9082615452565b905061312d565b505b50506000938452601060205260409093208390555090919050565b600082815260106020526040812060010180548392906131e3908490615452565b90915550505050565b6000611b5f8383614158565b816001600160a01b0316836001600160a01b031614156132805760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610c34565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060611b5f83836040518060600160405280602781526020016158ba60279139614182565b6000610c60825490565b6001600160a01b0384166133805760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610c34565b600061338a612582565b90506133aa81878761339b8861426d565b6133a48861426d565b87613b29565b6000848152602081815260408083206001600160a01b038a1684529091529020548381101561342e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610c34565b6000858152602081815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061346b908490615452565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46134cb8288888888886142b8565b50505050505050565b6000826134e185846143c3565b14949350505050565b6001600160a01b03831661354c5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610c34565b6000613556612582565b9050613586818560006135688761426d565b6135718761426d565b60405180602001604052806000815250613b29565b6000838152602081815260408083206001600160a01b0388168452909152902054828110156136035760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610c34565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b60008181526001830160205260408120546136b557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c60565b506000610c60565b6040516370a0823160e01b81526001600160a01b0384811660048301528291908416906370a082319060240160206040518083038186803b15801561370157600080fd5b505afa158015613715573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373991906156d7565b101580156137c75750604051636eb1769f60e11b81526001600160a01b03848116600483015230602483015282919084169063dd62ed3e9060440160206040518083038186803b15801561378c57600080fd5b505afa1580156137a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c491906156d7565b10155b6113265760405162461bcd60e51b815260206004820152602b60248201527f696e73756666696369656e742063757272656e63792062616c616e6365206f7260448201527f20616c6c6f77616e63652e0000000000000000000000000000000000000000006064820152608401610c34565b8061384357613a17565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415613a0b576001600160a01b03831630141561390257604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156138db57600080fd5b505af11580156138ef573d6000803e3d6000fd5b505050506138fd8282614467565b613a17565b6001600160a01b038216301415613a01573481146139885760405162461bcd60e51b815260206004820152602d60248201527f6e617469766520746f6b656e2076616c756520646f6573206e6f74206d61746360448201527f682062696420616d6f756e742e000000000000000000000000000000000000006064820152608401610c34565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156139e357600080fd5b505af11580156139f7573d6000803e3d6000fd5b5050505050613a17565b6138fd8282614467565b613a178484848461455e565b50505050565b6001600160a01b038416613a7d5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610c34565b6000613a87612582565b9050613a998160008761339b8861426d565b6000848152602081815260408083206001600160a01b038916845290915281208054859290613ac9908490615452565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46112f2816000878787876142b8565b600a54600160b81b900460ff168015613b4a57506001600160a01b03851615155b8015613b5e57506001600160a01b03841615155b15613c38576001600160a01b03851660009081527f1c88b5fd2b55b5abb48725d2d1819fee67dc026403dc9aa4432aac630558b5e8602052604090205460ff1680613be057506001600160a01b03841660009081527f1c88b5fd2b55b5abb48725d2d1819fee67dc026403dc9aa4432aac630558b5e8602052604090205460ff165b613c385760405162461bcd60e51b8152602060048201526024808201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526332b9399760e11b6064820152608401610c34565b6001600160a01b038516613cbf5760005b8351811015613cbd57828181518110613c6457613c64615328565b6020026020010151600f6000868481518110613c8257613c82615328565b602002602001015181526020019081526020016000206000828254613ca79190615452565b90915550613cb6905081615524565b9050613c49565b505b6001600160a01b0384166127715760005b83518110156134cb57828181518110613ceb57613ceb615328565b6020026020010151600f6000868481518110613d0957613d09615328565b602002602001015181526020019081526020016000206000828254613d2e91906154d0565b90915550613d3d905081615524565b9050613cd0565b6001600160a01b0384163b156127715760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613d8890899089908890889088906004016156f0565b602060405180830381600087803b158015613da257600080fd5b505af1925050508015613dd2575060408051601f3d908101601f19168201909252613dcf9181019061574e565b60015b613e8857613dde61576b565b806308c379a01415613e185750613df3615786565b80613dfe5750613e1a565b8060405162461bcd60e51b8152600401610c349190614aae565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610c34565b6001600160e01b0319811663bc197c8160e01b146134cb5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610c34565b60606000613f08836002615487565b613f13906002615452565b67ffffffffffffffff811115613f2b57613f2b614bb6565b6040519080825280601f01601f191660200182016040528015613f55576020820181803683370190505b509050600360fc1b81600081518110613f7057613f70615328565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f9f57613f9f615328565b60200101906001600160f81b031916908160001a9053506000613fc3846002615487565b613fce906001615452565b90505b6001811115614053577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061400f5761400f615328565b1a60f81b82828151811061402557614025615328565b60200101906001600160f81b031916908160001a90535060049490941c9361404c81615810565b9050613fd1565b508315611b5f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c34565b60008281526004602090815260408083206001600160a01b038516845290915290205460ff16156113c35760008281526004602090815260408083206001600160a01b03851684529091529020805460ff191690556140ff612582565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611b5f836001600160a01b038416614801565b600082600001828154811061416f5761416f615328565b9060005260206000200154905092915050565b6060833b6141f85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610c34565b600080856001600160a01b0316856040516142139190615827565b600060405180830381855af49150503d806000811461424e576040519150601f19603f3d011682016040523d82523d6000602084013e614253565b606091505b50915091506142638282866148f4565b9695505050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106142a7576142a7615328565b602090810291909101015292915050565b6001600160a01b0384163b156127715760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906142fc9089908990889088908890600401615843565b602060405180830381600087803b15801561431657600080fd5b505af1925050508015614346575060408051601f3d908101601f191682019092526143439181019061574e565b60015b61435257613dde61576b565b6001600160e01b0319811663f23a6e6160e01b146134cb5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610c34565b600081815b84518110156116e75760008582815181106143e5576143e5615328565b60200260200101519050808311614427576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250614454565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061445f81615524565b9150506143c8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146144b4576040519150601f19603f3d011682016040523d82523d6000602084013e6144b9565b606091505b5050905080611326577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561451d57600080fd5b505af1158015614531573d6000803e3d6000fd5b50505050506113267f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b0316141561457d57613a17565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b1580156145c257600080fd5b505afa1580156145d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145fa91906156d7565b905060006001600160a01b038516301461469d576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528716906323b872dd90606401602060405180830381600087803b15801561466057600080fd5b505af1158015614674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146989190615886565b61471f565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b1580156146e757600080fd5b505af11580156146fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471f9190615886565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b15801561476657600080fd5b505afa15801561477a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061479e91906156d7565b90508180156147b557506147b28484615452565b81145b6134cb5760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e000000006044820152606401610c34565b600081815260018301602052604081205480156148ea5760006148256001836154d0565b8554909150600090614839906001906154d0565b905081811461489e57600086600001828154811061485957614859615328565b906000526020600020015490508087600001848154811061487c5761487c615328565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806148af576148af6158a3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c60565b6000915050610c60565b60608315614903575081611b5f565b8251156149135782518084602001fd5b8160405162461bcd60e51b8152600401610c349190614aae565b8280546149399061533e565b90600052602060002090601f01602090048101928261495b57600085556149a1565b82601f106149745782800160ff198235161785556149a1565b828001600101855582156149a1579182015b828111156149a1578235825591602001919060010190614986565b506149ad9291506149b1565b5090565b5b808211156149ad57600081556001016149b2565b6001600160a01b03811681146149db57600080fd5b50565b600080604083850312156149f157600080fd5b82356149fc816149c6565b946020939093013593505050565b6001600160e01b0319811681146149db57600080fd5b600060208284031215614a3257600080fd5b8135611b5f81614a0a565b600060208284031215614a4f57600080fd5b5035919050565b60005b83811015614a71578181015183820152602001614a59565b83811115613a175750506000910152565b60008151808452614a9a816020860160208601614a56565b601f01601f19169290920160200192915050565b602081526000611b5f6020830184614a82565b600060208284031215614ad357600080fd5b8135611b5f816149c6565b60008083601f840112614af057600080fd5b50813567ffffffffffffffff811115614b0857600080fd5b6020830191508360208260051b8501011115614b2357600080fd5b9250929050565b600080600080600060808688031215614b4257600080fd5b8535614b4d816149c6565b94506020860135935060408601359250606086013567ffffffffffffffff811115614b7757600080fd5b614b8388828901614ade565b969995985093965092949392505050565b60008060408385031215614ba757600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715614bf257614bf2614bb6565b6040525050565b600067ffffffffffffffff821115614c1357614c13614bb6565b5060051b60200190565b600082601f830112614c2e57600080fd5b81356020614c3b82614bf9565b604051614c488282614bcc565b83815260059390931b8501820192828101915086841115614c6857600080fd5b8286015b84811015614c835780358352918301918301614c6c565b509695505050505050565b600082601f830112614c9f57600080fd5b813567ffffffffffffffff811115614cb957614cb9614bb6565b604051614cd0601f8301601f191660200182614bcc565b818152846020838601011115614ce557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614d1a57600080fd5b8535614d25816149c6565b94506020860135614d35816149c6565b9350604086013567ffffffffffffffff80821115614d5257600080fd5b614d5e89838a01614c1d565b94506060880135915080821115614d7457600080fd5b614d8089838a01614c1d565b93506080880135915080821115614d9657600080fd5b50614da388828901614c8e565b9150509295509295909350565b60008060408385031215614dc357600080fd5b823591506020830135614dd5816149c6565b809150509250929050565b60008083601f840112614df257600080fd5b50813567ffffffffffffffff811115614e0a57600080fd5b602083019150836020828501011115614b2357600080fd5b600080600060408486031215614e3757600080fd5b83359250602084013567ffffffffffffffff811115614e5557600080fd5b614e6186828701614de0565b9497909650939450505050565b60008060408385031215614e8157600080fd5b823567ffffffffffffffff80821115614e9957600080fd5b818501915085601f830112614ead57600080fd5b81356020614eba82614bf9565b604051614ec78282614bcc565b83815260059390931b8501820192828101915089841115614ee757600080fd5b948201945b83861015614f0e578535614eff816149c6565b82529482019490820190614eec565b96505086013592505080821115614f2457600080fd5b50614f3185828601614c1d565b9150509250929050565b600081518084526020808501945080840160005b83811015614f6b57815187529582019590820190600101614f4f565b509495945050505050565b602081526000611b5f6020830184614f3b565b600080600060608486031215614f9e57600080fd5b8335614fa9816149c6565b9250602084013567ffffffffffffffff80821115614fc657600080fd5b614fd287838801614c1d565b93506040860135915080821115614fe857600080fd5b50614ff586828701614c1d565b9150509250925092565b80151581146149db57600080fd5b60006020828403121561501f57600080fd5b8135611b5f81614fff565b60008060006040848603121561503f57600080fd5b83359250602084013567ffffffffffffffff8082111561505e57600080fd5b818601915086601f83011261507257600080fd5b81358181111561508157600080fd5b8760208260081b850101111561509657600080fd5b6020830194508093505050509250925092565b600080602083850312156150bc57600080fd5b823567ffffffffffffffff8111156150d357600080fd5b6150df85828601614de0565b90969095509350505050565b600080604083850312156150fe57600080fd5b8235615109816149c6565b91506020830135614dd581614fff565b6000806020838503121561512c57600080fd5b823567ffffffffffffffff81111561514357600080fd5b6150df85828601614ade565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151a457603f19888603018452615192858351614a82565b94509285019290850190600101615176565b5092979650505050505050565b600080604083850312156151c457600080fd5b82356151cf816149c6565b91506020830135614dd5816149c6565b6000806000606084860312156151f457600080fd5b8335925060208401359150604084013561520d816149c6565b809150509250925092565b600080600080600060a0868803121561523057600080fd5b853561523b816149c6565b9450602086013561524b816149c6565b93506040860135925060608601359150608086013567ffffffffffffffff81111561527557600080fd5b614da388828901614c8e565b60008060008060008060a0878903121561529a57600080fd5b86356152a5816149c6565b95506020870135945060408701359350606087013567ffffffffffffffff8111156152cf57600080fd5b6152db89828a01614ade565b979a9699509497949695608090950135949350505050565b60008060006060848603121561530857600080fd5b8335615313816149c6565b95602085013595506040909401359392505050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061535257607f821691505b6020821081141561537357634e487b7160e01b600052602260045260246000fd5b50919050565b6000815161538b818560208601614a56565b9290920192915050565b600080845481600182811c9150808316806153b157607f831692505b60208084108214156153d157634e487b7160e01b86526022600452602486fd5b8180156153e557600181146153f657615423565b60ff19861689528489019650615423565b60008b81526020902060005b8681101561541b5781548b820152908501908301615402565b505084890196505b5050505050506154338185615379565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156154655761546561543c565b500190565b60006020828403121561547c57600080fd5b8151611b5f816149c6565b60008160001904831182151516156154a1576154a161543c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826154cb576154cb6154a6565b500490565b6000828210156154e2576154e261543c565b500390565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006000198214156155385761553861543c565b5060010190565b6020808252818101839052600090604080840186845b878110156155c9578135835284820135858401528382013584840152606080830135908401526080808301359084015260a0808301359084015260c0808301359084015260e0808301356155a8816149c6565b6001600160a01b031690840152610100928301929190910190600101615555565b5090979650505050505050565b6000808335601e198436030181126155ed57600080fd5b83018035915067ffffffffffffffff82111561560857600080fd5b602001915036819003821315614b2357600080fd5b60008261562c5761562c6154a6565b500690565b6040815260006156446040830185614f3b565b82810360208401526154338185614f3b565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161568e816017850160208801614a56565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516156cb816028840160208801614a56565b01602801949350505050565b6000602082840312156156e957600080fd5b5051919050565b60006001600160a01b03808816835280871660208401525060a0604083015261571c60a0830186614f3b565b828103606084015261572e8186614f3b565b905082810360808401526157428185614a82565b98975050505050505050565b60006020828403121561576057600080fd5b8151611b5f81614a0a565b600060033d11156123c55760046000803e5060005160e01c90565b600060443d10156157945790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156157c457505050505090565b82850191508151818111156157dc5750505050505090565b843d87010160208285010111156157f65750505050505090565b61580560208286010187614bcc565b509095945050505050565b60008161581f5761581f61543c565b506000190190565b60008251615839818460208701614a56565b9190910192915050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261587b60a0830184614a82565b979650505050505050565b60006020828403121561589857600080fd5b8151611b5f81614fff565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$d = function isSuperArgs(xs) {
return xs.length > 1;
};
var LazyMintERC1155__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(LazyMintERC1155__factory, _ContractFactory);
function LazyMintERC1155__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$d(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$V, _bytecode$d, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = LazyMintERC1155__factory.prototype;
_proto.deploy = function deploy(_contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
LazyMintERC1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$V);
};
LazyMintERC1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$V, signerOrProvider);
};
return LazyMintERC1155__factory;
}(ContractFactory);
LazyMintERC1155__factory.bytecode = _bytecode$d;
LazyMintERC1155__factory.abi = _abi$V;
/* Autogenerated file. Do not edit manually. */
var _abi$W = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC20.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "receiver",
type: "address"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC20.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var ILazyMintERC20__factory = /*#__PURE__*/function () {
function ILazyMintERC20__factory() {}
ILazyMintERC20__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$W);
};
ILazyMintERC20__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$W, signerOrProvider);
};
return ILazyMintERC20__factory;
}();
ILazyMintERC20__factory.abi = _abi$W;
var _abi$X = [{
inputs: [{
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "string",
name: "_contractURI",
type: "string"
}, {
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}, {
internalType: "uint128",
name: "_royaltyBps",
type: "uint128"
}, {
internalType: "uint128",
name: "_feeBps",
type: "uint128"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "fromDelegate",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "toDelegate",
type: "address"
}],
name: "DelegateChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "delegate",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "previousBalance",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newBalance",
type: "uint256"
}],
name: "DelegateVotesChanged",
type: "event"
}, {
anonymous: false,
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC20.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "VERSION",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burnFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint32",
name: "pos",
type: "uint32"
}],
name: "checkpoints",
outputs: [{
components: [{
internalType: "uint32",
name: "fromBlock",
type: "uint32"
}, {
internalType: "uint224",
name: "votes",
type: "uint224"
}],
internalType: "struct ERC20Votes.Checkpoint",
name: "",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_receiver",
type: "address"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [],
name: "claimConditions",
outputs: [{
internalType: "uint256",
name: "totalConditionCount",
type: "uint256"
}, {
internalType: "uint256",
name: "timstampLimitIndex",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "defaultSaleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}],
name: "delegate",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "delegatee",
type: "address"
}, {
internalType: "uint256",
name: "nonce",
type: "uint256"
}, {
internalType: "uint256",
name: "expiry",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "delegateBySig",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "delegates",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_index",
type: "uint256"
}],
name: "getClaimConditionAtIndex",
outputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC20.ClaimCondition",
name: "mintCondition",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getIndexOfActiveCondition",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastTotalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getPastVotes",
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: "uint256",
name: "_index",
type: "uint256"
}, {
internalType: "address",
name: "_claimer",
type: "address"
}],
name: "getTimestampForNextValidClaim",
outputs: [{
internalType: "uint256",
name: "nextValidTimestampForClaim",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "getVotes",
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: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "numCheckpoints",
outputs: [{
internalType: "uint32",
name: "",
type: "uint32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC20.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setDefaultSaleRecipient",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC20.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "updateClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_claimer",
type: "address"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}, {
internalType: "uint256",
name: "_conditionIndex",
type: "uint256"
}],
name: "verifyClaim",
outputs: [],
stateMutability: "view",
type: "function"
}];
var _bytecode$e = "0x6101806040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b5060405162005c0438038062005c048339810160408190526200005a9162000607565b858989878a818480604051806040016040528060018152602001603160f81b81525087878160059080519060200190620000969291906200045f565b508051620000ac9060069060208401906200045f565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c052610120525050600b80546001600160a81b0319166101006001600160a01b03968716021790555050600c80546001600160a01b031916928816929092179091555080516200018e90600d9060208401906200045f565b50620001a560006200019f62000299565b620002b5565b620001d47f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200019f62000299565b620002037f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200019f62000299565b620002327f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200019f62000299565b50506001600e555050506001600160a01b0393841661016052600f8054939094166001600160e01b031990931692909217600160a01b6001600160401b039283160217909255601080546001600160401b0319169190921617905550620007469350505050565b6000620002b0620002c560201b6200246c1760201c565b905090565b620002c1828262000304565b5050565b600b546000906001600160a01b0361010090910416331415620002ef575060131936013560601c90565b620002b06200034760201b620024991760201c565b6200031b82826200034b60201b6200249d1760201c565b6000828152600160209081526040909120620003429183906200253c620003ed821b17901c565b505050565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002c1576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003a962000299565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000404836001600160a01b0384166200040d565b90505b92915050565b6000818152600183016020526040812054620004565750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000407565b50600062000407565b8280546200046d9062000709565b90600052602060002090601f016020900481019282620004915760008555620004dc565b82601f10620004ac57805160ff1916838001178555620004dc565b82800160010185558215620004dc579182015b82811115620004dc578251825591602001919060010190620004bf565b50620004ea929150620004ee565b5090565b5b80821115620004ea5760008155600101620004ef565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200052d57600080fd5b81516001600160401b03808211156200054a576200054a62000505565b604051601f8301601f19908116603f0116810190828211818310171562000575576200057562000505565b816040528381526020925086838588010111156200059257600080fd5b600091505b83821015620005b6578582018301518183018401529082019062000597565b83821115620005c85760008385830101525b9695505050505050565b80516001600160a01b0381168114620005ea57600080fd5b919050565b80516001600160801b0381168114620005ea57600080fd5b60008060008060008060008060006101208a8c0312156200062757600080fd5b89516001600160401b03808211156200063f57600080fd5b6200064d8d838e016200051b565b9a5060208c01519150808211156200066457600080fd5b620006728d838e016200051b565b995060408c01519150808211156200068957600080fd5b50620006988c828d016200051b565b975050620006a960608b01620005d2565b9550620006b960808b01620005d2565b9450620006c960a08b01620005d2565b9350620006d960c08b01620005d2565b9250620006e960e08b01620005ef565b9150620006fa6101008b01620005ef565b90509295985092959850929598565b600181811c908216806200071e57607f821691505b602082108114156200074057634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516101605161543c620007c860003960008181610cc501528181613a6d01528181613b680152818161439901526144100152600061222e01526000612d4b01526000612d9a01526000612d7501526000612cce01526000612cf801526000612d22015261543c6000f3fe6080604052600436106103ad5760003560e01c80636fcfff45116101e7578063a457c2d71161010d578063d5391393116100a0578063e8a3d4851161006f578063e8a3d48514610c54578063f1127ed814610c69578063f9ea29cb14610cb3578063ffa1ad7414610ce757600080fd5b8063d539139314610b86578063d547741f14610bba578063dd62ed3e14610bda578063e63ab1e914610c2057600080fd5b8063c63adb2b116100dc578063c63adb2b14610b09578063ca15c87314610b31578063ceb4aff314610b51578063d505accf14610b6657600080fd5b8063a457c2d714610a7c578063a9059cbb14610a9c578063ac9650d814610abc578063c3cda52014610ae957600080fd5b80638ba448c211610185578063938e3d7b11610154578063938e3d7b14610a1257806395d89b4114610a325780639ab24eb014610a47578063a217fddf14610a6757600080fd5b80638ba448c21461096e5780638e539e8c1461098e5780639010d07c146109ae57806391d14854146109ce57600080fd5b806379cc6790116101c157806379cc6790146108f85780637ecebe00146109185780638423df79146109385780638456cb591461095957600080fd5b80636fcfff451461086d57806370a08231146108a257806372c27b62146108d857600080fd5b806334ad5e4b116102d757806340c10f191161026a578063587cde1e11610239578063587cde1e146107cc5780635c19a95c146108055780635c975abb14610825578063666134631461083d57600080fd5b806340c10f191461073857806342966c68146107585780635157446914610778578063572b6c051461079857600080fd5b806339509351116102a657806339509351146106d05780633a46b1a8146106f05780633d13f874146107105780633f4ba83a1461072357600080fd5b806334ad5e4b146105fc5780633644e5151461061c57806336568abe146106315780633707d9dc1461065157600080fd5b8063206b60f91161034f57806324a9d8531161031e57806324a9d853146105665780632f2ff15d146105a0578063313ce567146105c057806333fd2999146105dc57600080fd5b8063206b60f9146104aa57806323b872dd146104de578063246b436b146104fe578063248a9ca31461053657600080fd5b8063097b3cdb1161038b578063097b3cdb146104295780631490ee761461044b57806318160ddd1461046b5780631f72d8311461048a57600080fd5b806301ffc9a7146103b257806306fdde03146103e7578063095ea7b314610409575b600080fd5b3480156103be57600080fd5b506103d26103cd366004614b6e565b610cfc565b60405190151581526020015b60405180910390f35b3480156103f357600080fd5b506103fc610d27565b6040516103de9190614bf0565b34801561041557600080fd5b506103d2610424366004614c18565b610db9565b34801561043557600080fd5b50610449610444366004614c90565b610dd6565b005b34801561045757600080fd5b50610449610466366004614cf4565b611032565b34801561047757600080fd5b506004545b6040519081526020016103de565b34801561049657600080fd5b506104496104a5366004614d11565b6110ce565b3480156104b657600080fd5b5061047c7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b3480156104ea57600080fd5b506103d26104f9366004614d2a565b6111d3565b34801561050a57600080fd5b50600f5461051e906001600160a01b031681565b6040516001600160a01b0390911681526020016103de565b34801561054257600080fd5b5061047c610551366004614d11565b60009081526020819052604090206001015490565b34801561057257600080fd5b506010546105879067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016103de565b3480156105ac57600080fd5b506104496105bb366004614d6b565b6112bb565b3480156105cc57600080fd5b50604051601281526020016103de565b3480156105e857600080fd5b5061047c6105f7366004614d6b565b6112ed565b34801561060857600080fd5b50610449610617366004614d9b565b61134f565b34801561062857600080fd5b5061047c6113f6565b34801561063d57600080fd5b5061044961064c366004614d6b565b611405565b34801561065d57600080fd5b5061067161066c366004614d11565b6114a1565b6040516103de9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a08301526001600160a01b0360c08401511660c083015292915050565b3480156106dc57600080fd5b506103d26106eb366004614c18565b611559565b3480156106fc57600080fd5b5061047c61070b366004614c18565b6115ad565b61044961071e366004614e10565b611620565b34801561072f57600080fd5b50610449611778565b34801561074457600080fd5b50610449610753366004614c18565b611820565b34801561076457600080fd5b50610449610773366004614d11565b6118ae565b34801561078457600080fd5b50610449610793366004614d9b565b6118c2565b3480156107a457600080fd5b506103d26107b3366004614cf4565b600b5461010090046001600160a01b0390811691161490565b3480156107d857600080fd5b5061051e6107e7366004614cf4565b6001600160a01b039081166000908152600860205260409020541690565b34801561081157600080fd5b50610449610820366004614cf4565b61195c565b34801561083157600080fd5b50600b5460ff166103d2565b34801561084957600080fd5b50601154601254610858919082565b604080519283526020830191909152016103de565b34801561087957600080fd5b5061088d610888366004614cf4565b61196d565b60405163ffffffff90911681526020016103de565b3480156108ae57600080fd5b5061047c6108bd366004614cf4565b6001600160a01b031660009081526002602052604090205490565b3480156108e457600080fd5b506104496108f3366004614d11565b61198f565b34801561090457600080fd5b50610449610913366004614c18565b611a70565b34801561092457600080fd5b5061047c610933366004614cf4565b611afa565b34801561094457600080fd5b50600b546103d290600160a81b900460ff1681565b34801561096557600080fd5b50610449611b18565b34801561097a57600080fd5b50610449610989366004614e7a565b611ba4565b34801561099a57600080fd5b5061047c6109a9366004614d11565b611c5e565b3480156109ba57600080fd5b5061051e6109c9366004614e97565b611cba565b3480156109da57600080fd5b506103d26109e9366004614d6b565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610a1e57600080fd5b50610449610a2d366004614eb9565b611cd2565b348015610a3e57600080fd5b506103fc611d30565b348015610a5357600080fd5b5061047c610a62366004614cf4565b611d3f565b348015610a7357600080fd5b5061047c600081565b348015610a8857600080fd5b506103d2610a97366004614c18565b611dc6565b348015610aa857600080fd5b506103d2610ab7366004614c18565b611e95565b348015610ac857600080fd5b50610adc610ad7366004614f19565b611ea9565b6040516103de9190614f5b565b348015610af557600080fd5b50610449610b04366004614fd3565b611f9e565b348015610b1557600080fd5b50600f5461058790600160a01b900467ffffffffffffffff1681565b348015610b3d57600080fd5b5061047c610b4c366004614d11565b6120d4565b348015610b5d57600080fd5b5061047c6120eb565b348015610b7257600080fd5b50610449610b8136600461502d565b6121da565b348015610b9257600080fd5b5061047c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610bc657600080fd5b50610449610bd5366004614d6b565b612332565b348015610be657600080fd5b5061047c610bf536600461509b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610c2c57600080fd5b5061047c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b348015610c6057600080fd5b506103fc61235a565b348015610c7557600080fd5b50610c89610c843660046150c9565b6123e8565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016103de565b348015610cbf57600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610cf357600080fd5b5061047c600181565b60006001600160e01b03198216635a05180f60e01b1480610d215750610d2182612551565b92915050565b606060058054610d3690615100565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6290615100565b8015610daf5780601f10610d8457610100808354040283529160200191610daf565b820191906000526020600020905b815481529060010190602001808311610d9257829003601f168201915b5050505050905090565b6000610dcd610dc6612586565b8484612590565b50600192915050565b600081815260136020908152604091829020825160e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a08201526006909101546001600160a01b031660c08201528415801590610e6057508060200151858260400151610e5d919061514b565b11155b610eb15760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207175616e7469747920636c61696d65642e0000000000000060448201526064015b60405180910390fd5b601254600090610ec1908461514b565b6001600160a01b0388166000908152601460209081526040808320848452909152812054919250610ef2858a6112ed565b9050811580610f015750804210155b610f4d5760405162461bcd60e51b815260206004820152601160248201527f63616e6e6f7420636c61696d207965742e0000000000000000000000000000006044820152606401610ea8565b608084015115611027576040516bffffffffffffffffffffffff1960608b901b16602082015260348101899052600090605401604051602081830303815290604052805190602001209050610fd98888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050506080870151836126b4565b6110255760405162461bcd60e51b815260206004820152601160248201527f6e6f7420696e2077686974656c6973742e0000000000000000000000000000006044820152606401610ea8565b505b505050505050505050565b61103f60006109e9612586565b6110845760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f7469c47fe13b9fc961c218a4b283151f80fc15e3a95e1d1b95aeace021f3d0cc90600090a250565b6110db60006109e9612586565b6111205760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b6127108111156111625760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610ea8565b600f80547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b67ffffffffffffffff8416021790556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b60006111e08484846126ca565b6001600160a01b038416600090815260036020526040812081611201612586565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561129a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610ea8565b6112ae856112a6612586565b858403612590565b60019150505b9392505050565b6000828152602081905260409020600101546112de816112d9612586565b6128de565b6112e8838361295c565b505050565b60125460009081906112ff908561514b565b6001600160a01b038416600090815260146020908152604080832084845282528083205488845260139092529091206003015481019350909150808310156113475760001992505b505092915050565b61135c60006109e9612586565b6113a15760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b60006113ad838361297e565b90506113b881612ca4565b7fe79cb078c5bee678e4a64f927c5d2bde55059136cd3abbaa48d1ad22d0a22e4083836040516113e9929190615163565b60405180910390a1505050565b6000611400612cc1565b905090565b61140d612586565b6001600160a01b0316816001600160a01b0316146114935760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610ea8565b61149d8282612de8565b5050565b6114ed6040518060e0016040528060008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b031681525090565b50600090815260136020908152604091829020825160e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a08201526006909101546001600160a01b031660c082015290565b6000610dcd611566612586565b848460036000611574612586565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546115a8919061514b565b612590565b60004382106115fe5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610ea8565b6001600160a01b03831660009081526009602052604090206112b49083612e0a565b6002600e5414156116735760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ea8565b6002600e5560006116826120eb565b600081815260136020908152604091829020825160e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a08201526006909101546001600160a01b031660c08201529091506117016116f8612586565b86868686610dd6565b61170b8186612ec7565b611716868387613063565b856001600160a01b0316611728612586565b6001600160a01b0316837f54ea1c71a2a9917902d116540f81645f85ca1a1669139bf4acc65461f619f5508860405161176391815260200190565b60405180910390a450506001600e5550505050565b6117a47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109e9612586565b6118165760405162461bcd60e51b815260206004820152602660248201527f436f696e3a206d75737420686176652070617573657220726f6c6520746f207560448201527f6e706175736500000000000000000000000000000000000000000000000000006064820152608401610ea8565b61181e6130d9565b565b61184c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66109e9612586565b6118a45760405162461bcd60e51b815260206004820152602360248201527f436f696e3a206d7573742068617665206d696e74657220726f6c6520746f206d6044820152621a5b9d60ea1b6064820152608401610ea8565b61149d828261317b565b6118bf6118b9612586565b82613185565b50565b6118cf60006109e9612586565b6119145760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b61191e828261297e565b507fe79cb078c5bee678e4a64f927c5d2bde55059136cd3abbaa48d1ad22d0a22e408282604051611950929190615163565b60405180910390a15050565b6118bf611967612586565b8261318f565b6001600160a01b038116600090815260096020526040812054610d2190613209565b61199c60006109e9612586565b6119e15760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b612710811115611a235760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610ea8565b6010805467ffffffffffffffff191667ffffffffffffffff83161790556040518181527f2440645f96173394eb0d508ef9d0c95e3ddc41c6a10ef86e547fc738df9ecce2906020016111c8565b6000611a7e83610bf5612586565b905081811015611adc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610ea8565b611af083611ae8612586565b848403612590565b6112e88383613185565b6001600160a01b038116600090815260076020526040812054610d21565b611b447f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109e9612586565b611b9c5760405162461bcd60e51b8152602060048201526024808201527f436f696e3a206d75737420686176652070617573657220726f6c6520746f20706044820152636175736560e01b6064820152608401610ea8565b61181e613289565b611bb160006109e9612586565b611bf65760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b600b8054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc906111c890831515815260200190565b6000438210611caf5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610ea8565b610d21600a83612e0a565b60008281526001602052604081206112b49083613312565b611cdf60006109e9612586565b611d245760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610ea8565b6112e8600d8383614ade565b606060068054610d3690615100565b6001600160a01b0381166000908152600960205260408120548015611db3576001600160a01b0383166000908152600960205260409020611d816001836151ef565b81548110611d9157611d91615206565b60009182526020909120015464010000000090046001600160e01b0316611db6565b60005b6001600160e01b03169392505050565b60008060036000611dd5612586565b6001600160a01b0390811682526020808301939093526040918201600090812091881681529252902054905082811015611e775760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610ea8565b611e8b611e82612586565b85858403612590565b5060019392505050565b6000610dcd611ea2612586565b84846126ca565b60608167ffffffffffffffff811115611ec457611ec461521c565b604051908082528060200260200182016040528015611ef757816020015b6060815260200190600190039081611ee25790505b50905060005b82811015611f9757611f6730858584818110611f1b57611f1b615206565b9050602002810190611f2d9190615232565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061331e92505050565b828281518110611f7957611f79615206565b60200260200101819052508080611f8f90615279565b915050611efd565b5092915050565b83421115611fee5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610ea8565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090612068906120609060a00160405160208183030381529060405280519060200120613343565b858585613391565b9050612073816133b9565b86146120c15760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610ea8565b6120cb818861318f565b50505050505050565b6000818152600160205260408120610d21906133e1565b6011546000908061213e5760405162461bcd60e51b815260206004820152601960248201527f6e6f207075626c6963206d696e7420636f6e646974696f6e2e000000000000006044820152606401610ea8565b805b801561219157601360006121556001846151ef565b815260200190815260200160002060000154421061217f576121786001826151ef565b9250505090565b61218a6001826151ef565b9050612140565b5060405162461bcd60e51b815260206004820152601960248201527f6e6f20616374697665206d696e7420636f6e646974696f6e2e000000000000006044820152606401610ea8565b8342111561222a5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610ea8565b60007f00000000000000000000000000000000000000000000000000000000000000008888886122598c6133b9565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006122b482613343565b905060006122c482878787613391565b9050896001600160a01b0316816001600160a01b0316146123275760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610ea8565b6110258a8a8a612590565b600082815260208190526040902060010154612350816112d9612586565b6112e88383612de8565b600d805461236790615100565b80601f016020809104026020016040519081016040528092919081815260200182805461239390615100565b80156123e05780601f106123b5576101008083540402835291602001916123e0565b820191906000526020600020905b8154815290600101906020018083116123c357829003601f168201915b505050505081565b60408051808201909152600080825260208201526001600160a01b0383166000908152600960205260409020805463ffffffff841690811061242c5761242c615206565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b600b5460009061010090046001600160a01b0316331415612494575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661149d576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556124f8612586565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006112b4836001600160a01b0384166133eb565b60006001600160e01b03198216637965db0b60e01b1480610d2157506301ffc9a760e01b6001600160e01b0319831614610d21565b600061140061246c565b6001600160a01b0383166125f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ea8565b6001600160a01b0382166126535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ea8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000826126c1858461343a565b14949350505050565b6001600160a01b0383166127465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610ea8565b6001600160a01b0382166127a85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ea8565b6127b38383836134e6565b6001600160a01b038316600090815260026020526040902054818110156128425760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610ea8565b6001600160a01b0380851660009081526002602052604080822085850390559185168152908120805484929061287990849061514b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128c591815260200190565b60405180910390a36128d884848461361a565b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661149d5761291a816001600160a01b03166014613625565b612925836020613625565b604051602001612936929190615294565b60408051601f198184030181529082905262461bcd60e51b8252610ea891600401614bf0565b612966828261249d565b60008281526001602052604090206112e8908261253c565b60008060005b83811015612c27578115806129b357508484828181106129a6576129a6615206565b905060e002016000013582105b612a255760405162461bcd60e51b815260206004820152602a60248201527f737461727454696d657374616d70206d75737420626520696e20617363656e6460448201527f696e67206f726465722e000000000000000000000000000000000000000000006064820152608401610ea8565b6000858583818110612a3957612a39615206565b905060e002016020013511612a905760405162461bcd60e51b815260206004820152601c60248201527f6d6178206d696e7420737570706c792063616e6e6f7420626520302e000000006044820152606401610ea8565b6040518060e00160405280868684818110612aad57612aad615206565b905060e00201600001358152602001868684818110612ace57612ace615206565b905060e0020160200135815260200160008152602001868684818110612af657612af6615206565b905060e00201606001358152602001868684818110612b1757612b17615206565b905060e00201608001358152602001868684818110612b3857612b38615206565b905060e0020160a001358152602001868684818110612b5957612b59615206565b905060e0020160c0016020810190612b719190614cf4565b6001600160a01b039081169091526000858152601360209081526040918290208451815590840151600180830191909155918401516002820155606084015160038201556080840151600482015560a0840151600582015560c090930151600690930180546001600160a01b03191693909216929092179055612bf4908461514b565b9250848482818110612c0857612c08615206565b905060e002016000013591508080612c1f90615279565b915050612984565b5060115480831015612c9757825b81811015612c955760008181526013602052604081208181556001808201839055600282018390556003820183905560048201839055600582019290925560060180546001600160a01b0319169055612c8e908261514b565b9050612c35565b505b5050601181905592915050565b8060116001016000828254612cb9919061514b565b909155505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612d1a57507f000000000000000000000000000000000000000000000000000000000000000046145b15612d4457507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b612df282826137ce565b60008281526001602052604090206112e8908261386b565b8154600090815b81811015612e6e576000612e258284613880565b905084868281548110612e3a57612e3a615206565b60009182526020909120015463ffffffff161115612e5a57809250612e68565b612e6581600161514b565b91505b50612e11565b8115612eb25784612e806001846151ef565b81548110612e9057612e90615206565b60009182526020909120015464010000000090046001600160e01b0316612eb5565b60005b6001600160e01b031695945050505050565b60a0820151612ed4575050565b60008260a0015182612ee69190615315565b60105490915060009061271090612f079067ffffffffffffffff1684615315565b612f119190615334565b60c08501519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612f9157813414612f8c5760405162461bcd60e51b815260206004820152601660248201527f6d7573742073656e6420746f74616c2070726963652e000000000000000000006044820152606401610ea8565b612fa7565b612fa7612f9c612586565b8560c001518461389b565b6130388460c00151612fb7612586565b600c5460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b158015612ffa57600080fd5b505afa15801561300e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130329190615356565b84613a17565b6128d88460c00151613048612586565b600f546001600160a01b031661305e85876151ef565b613a17565b6000828152601360205260408120600201805483929061308490849061514b565b9091555050601254600090613099908461514b565b905042601460006130a8612586565b6001600160a01b03168152602080820192909252604090810160009081208582529092529020556128d8848361317b565b600b5460ff1661312b5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610ea8565b600b805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61315e612586565b6040516001600160a01b03909116815260200160405180910390a1565b61149d8282613bf5565b61149d8282613c8c565b6001600160a01b03828116600081815260086020818152604080842080546002845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46128d8828483613ca4565b600063ffffffff8211156132855760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610ea8565b5090565b600b5460ff16156132dc5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610ea8565b600b805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861315e612586565b60006112b48383613de1565b60606112b4838360405180606001604052806027815260200161540960279139613e0b565b6000610d21613350612cc1565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006133a287878787613ef6565b915091506133af81613fe3565b5095945050505050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b6000610d21825490565b600081815260018301602052604081205461343257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d21565b506000610d21565b600081815b84518110156134de57600085828151811061345c5761345c615206565b6020026020010151905080831161349e5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506134cb565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806134d681615279565b91505061343f565b509392505050565b6134f183838361419e565b600b54600160a81b900460ff16801561351257506001600160a01b03831615155b801561352657506001600160a01b03821615155b156112e8576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff16806135a857506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b6112e85760405162461bcd60e51b815260206004820152603760248201527f436f696e3a205472616e7366657273206172652072657374726963746564207460448201527f6f205452414e534645525f524f4c4520686f6c646572730000000000000000006064820152608401610ea8565b6112e8838383614217565b60606000613634836002615315565b61363f90600261514b565b67ffffffffffffffff8111156136575761365761521c565b6040519080825280601f01601f191660200182016040528015613681576020820181803683370190505b509050600360fc1b8160008151811061369c5761369c615206565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106136cb576136cb615206565b60200101906001600160f81b031916908160001a90535060006136ef846002615315565b6136fa90600161514b565b90505b600181111561377f577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061373b5761373b615206565b1a60f81b82828151811061375157613751615206565b60200101906001600160f81b031916908160001a90535060049490941c9361377881615373565b90506136fd565b5083156112b45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ea8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff161561149d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613827612586565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006112b4836001600160a01b038416614249565b600061388f6002848418615334565b6112b49084841661514b565b6040516370a0823160e01b81526001600160a01b0384811660048301528291908416906370a082319060240160206040518083038186803b1580156138df57600080fd5b505afa1580156138f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613917919061538a565b101580156139a55750604051636eb1769f60e11b81526001600160a01b03848116600483015230602483015282919084169063dd62ed3e9060440160206040518083038186803b15801561396a57600080fd5b505afa15801561397e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139a2919061538a565b10155b6112e85760405162461bcd60e51b815260206004820152602b60248201527f696e73756666696369656e742063757272656e63792062616c616e6365206f7260448201527f20616c6c6f77616e63652e0000000000000000000000000000000000000000006064820152608401610ea8565b80613a21576128d8565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415613be9576001600160a01b038316301415613ae057604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613ab957600080fd5b505af1158015613acd573d6000803e3d6000fd5b50505050613adb828261433c565b6128d8565b6001600160a01b038216301415613bdf57348114613b665760405162461bcd60e51b815260206004820152602d60248201527f6e617469766520746f6b656e2076616c756520646f6573206e6f74206d61746360448201527f682062696420616d6f756e742e000000000000000000000000000000000000006064820152608401610ea8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613bc157600080fd5b505af1158015613bd5573d6000803e3d6000fd5b50505050506128d8565b613adb828261433c565b6128d884848484614433565b613bff8282614641565b6004546001600160e01b031015613c7e5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610ea8565b6128d8600a61473483614740565b613c9682826148b9565b6128d8600a614a1a83614740565b816001600160a01b0316836001600160a01b031614158015613cc65750600081115b156112e8576001600160a01b03831615613d54576001600160a01b03831660009081526009602052604081208190613d0190614a1a85614740565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613d49929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156112e8576001600160a01b03821660009081526009602052604081208190613d8a9061473485614740565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613dd2929190918252602082015260400190565b60405180910390a25050505050565b6000826000018281548110613df857613df8615206565b9060005260206000200154905092915050565b6060833b613e815760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610ea8565b600080856001600160a01b031685604051613e9c91906153a3565b600060405180830381855af49150503d8060008114613ed7576040519150601f19603f3d011682016040523d82523d6000602084013e613edc565b606091505b5091509150613eec828286614a26565b9695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613f2d5750600090506003613fda565b8460ff16601b14158015613f4557508460ff16601c14155b15613f565750600090506004613fda565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613faa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613fd357600060019250925050613fda565b9150600090505b94509492505050565b6000816004811115613ff757613ff76153bf565b14156140005750565b6001816004811115614014576140146153bf565b14156140625760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ea8565b6002816004811115614076576140766153bf565b14156140c45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ea8565b60038160048111156140d8576140d86153bf565b14156141315760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ea8565b6004816004811115614145576141456153bf565b14156118bf5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ea8565b600b5460ff16156112e85760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e7366657220776860448201527f696c6520706175736564000000000000000000000000000000000000000000006064820152608401610ea8565b6001600160a01b038381166000908152600860205260408082205485841683529120546112e892918216911683613ca4565b6000818152600183016020526040812054801561433257600061426d6001836151ef565b8554909150600090614281906001906151ef565b90508181146142e65760008660000182815481106142a1576142a1615206565b90600052602060002001549050808760000184815481106142c4576142c4615206565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806142f7576142f76153d5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d21565b6000915050610d21565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614389576040519150601f19603f3d011682016040523d82523d6000602084013e61438e565b606091505b50509050806112e8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156143f257600080fd5b505af1158015614406573d6000803e3d6000fd5b50505050506112e87f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b03161415614452576128d8565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b15801561449757600080fd5b505afa1580156144ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144cf919061538a565b6040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590529192506000918716906323b872dd90606401602060405180830381600087803b15801561452757600080fd5b505af115801561453b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455f91906153eb565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b1580156145a657600080fd5b505afa1580156145ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145de919061538a565b90508180156145f557506145f2848461514b565b81145b6120cb5760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e000000006044820152606401610ea8565b6001600160a01b0382166146975760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ea8565b6146a3600083836134e6565b80600460008282546146b5919061514b565b90915550506001600160a01b038216600090815260026020526040812080548392906146e290849061514b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361149d6000838361361a565b60006112b4828461514b565b82546000908190801561478b57856147596001836151ef565b8154811061476957614769615206565b60009182526020909120015464010000000090046001600160e01b031661478e565b60005b6001600160e01b031692506147a783858763ffffffff16565b91506000811180156147e5575043866147c16001846151ef565b815481106147d1576147d1615206565b60009182526020909120015463ffffffff16145b15614845576147f382614a5f565b866147ff6001846151ef565b8154811061480f5761480f615206565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506148b0565b85604051806040016040528061485a43613209565b63ffffffff16815260200161486e85614a5f565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b6001600160a01b0382166149195760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ea8565b614925826000836134e6565b6001600160a01b038216600090815260026020526040902054818110156149995760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ea8565b6001600160a01b03831660009081526002602052604081208383039055600480548492906149c89084906151ef565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36112e88360008461361a565b60006112b482846151ef565b60608315614a355750816112b4565b825115614a455782518084602001fd5b8160405162461bcd60e51b8152600401610ea89190614bf0565b60006001600160e01b038211156132855760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610ea8565b828054614aea90615100565b90600052602060002090601f016020900481019282614b0c5760008555614b52565b82601f10614b255782800160ff19823516178555614b52565b82800160010185558215614b52579182015b82811115614b52578235825591602001919060010190614b37565b506132859291505b808211156132855760008155600101614b5a565b600060208284031215614b8057600080fd5b81356001600160e01b0319811681146112b457600080fd5b60005b83811015614bb3578181015183820152602001614b9b565b838111156128d85750506000910152565b60008151808452614bdc816020860160208601614b98565b601f01601f19169290920160200192915050565b6020815260006112b46020830184614bc4565b6001600160a01b03811681146118bf57600080fd5b60008060408385031215614c2b57600080fd5b8235614c3681614c03565b946020939093013593505050565b60008083601f840112614c5657600080fd5b50813567ffffffffffffffff811115614c6e57600080fd5b6020830191508360208260051b8501011115614c8957600080fd5b9250929050565b600080600080600060808688031215614ca857600080fd5b8535614cb381614c03565b945060208601359350604086013567ffffffffffffffff811115614cd657600080fd5b614ce288828901614c44565b96999598509660600135949350505050565b600060208284031215614d0657600080fd5b81356112b481614c03565b600060208284031215614d2357600080fd5b5035919050565b600080600060608486031215614d3f57600080fd5b8335614d4a81614c03565b92506020840135614d5a81614c03565b929592945050506040919091013590565b60008060408385031215614d7e57600080fd5b823591506020830135614d9081614c03565b809150509250929050565b60008060208385031215614dae57600080fd5b823567ffffffffffffffff80821115614dc657600080fd5b818501915085601f830112614dda57600080fd5b813581811115614de957600080fd5b86602060e083028501011115614dfe57600080fd5b60209290920196919550909350505050565b60008060008060608587031215614e2657600080fd5b8435614e3181614c03565b935060208501359250604085013567ffffffffffffffff811115614e5457600080fd5b614e6087828801614c44565b95989497509550505050565b80151581146118bf57600080fd5b600060208284031215614e8c57600080fd5b81356112b481614e6c565b60008060408385031215614eaa57600080fd5b50508035926020909101359150565b60008060208385031215614ecc57600080fd5b823567ffffffffffffffff80821115614ee457600080fd5b818501915085601f830112614ef857600080fd5b813581811115614f0757600080fd5b866020828501011115614dfe57600080fd5b60008060208385031215614f2c57600080fd5b823567ffffffffffffffff811115614f4357600080fd5b614f4f85828601614c44565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614fb057603f19888603018452614f9e858351614bc4565b94509285019290850190600101614f82565b5092979650505050505050565b803560ff81168114614fce57600080fd5b919050565b60008060008060008060c08789031215614fec57600080fd5b8635614ff781614c03565b9550602087013594506040870135935061501360608801614fbd565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561504857600080fd5b873561505381614c03565b9650602088013561506381614c03565b9550604088013594506060880135935061507f60808901614fbd565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156150ae57600080fd5b82356150b981614c03565b91506020830135614d9081614c03565b600080604083850312156150dc57600080fd5b82356150e781614c03565b9150602083013563ffffffff81168114614d9057600080fd5b600181811c9082168061511457607f821691505b602082108114156133db57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561515e5761515e615135565b500190565b6020808252818101839052600090604080840186845b878110156151e2578135835284820135858401528382013584840152606080830135908401526080808301359084015260a0808301359084015260c0808301356151c281614c03565b6001600160a01b03169084015260e0928301929190910190600101615179565b5090979650505050505050565b60008282101561520157615201615135565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6000808335601e1984360301811261524957600080fd5b83018035915067ffffffffffffffff82111561526457600080fd5b602001915036819003821315614c8957600080fd5b600060001982141561528d5761528d615135565b5060010190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516152cc816017850160208801614b98565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351615309816028840160208801614b98565b01602801949350505050565b600081600019048311821515161561532f5761532f615135565b500290565b60008261535157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561536857600080fd5b81516112b481614c03565b60008161538257615382615135565b506000190190565b60006020828403121561539c57600080fd5b5051919050565b600082516153b5818460208701614b98565b9190910192915050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156153fd57600080fd5b81516112b481614e6c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$e = function isSuperArgs(xs) {
return xs.length > 1;
};
var LazyMintERC20__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(LazyMintERC20__factory, _ContractFactory);
function LazyMintERC20__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$e(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$X, _bytecode$e, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = LazyMintERC20__factory.prototype;
_proto.deploy = function deploy(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
LazyMintERC20__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$X);
};
LazyMintERC20__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$X, signerOrProvider);
};
return LazyMintERC20__factory;
}(ContractFactory);
LazyMintERC20__factory.bytecode = _bytecode$e;
LazyMintERC20__factory.abi = _abi$X;
/* Autogenerated file. Do not edit manually. */
var _abi$Y = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "baseURI",
type: "string"
}, {
indexed: false,
internalType: "bytes",
name: "encryptedBaseURI",
type: "bytes"
}],
name: "LazyMintedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC721.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "revealedURI",
type: "string"
}],
name: "RevealedNFT",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "receiver",
type: "address"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_amount",
type: "uint256"
}, {
internalType: "string",
name: "_baseURIForTokens",
type: "string"
}, {
internalType: "bytes",
name: "_encryptedBaseURI",
type: "bytes"
}],
name: "lazyMint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC721.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var ILazyMintERC721__factory = /*#__PURE__*/function () {
function ILazyMintERC721__factory() {}
ILazyMintERC721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$Y);
};
ILazyMintERC721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$Y, signerOrProvider);
};
return ILazyMintERC721__factory;
}();
ILazyMintERC721__factory.abi = _abi$Y;
var _abi$Z = [{
inputs: [{
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "string",
name: "_contractURI",
type: "string"
}, {
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}, {
internalType: "uint128",
name: "_royaltyBps",
type: "uint128"
}, {
internalType: "uint128",
name: "_feeBps",
type: "uint128"
}],
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: "uint256",
name: "claimConditionIndex",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "claimer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "receiver",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "quantityClaimed",
type: "uint256"
}],
name: "ClaimedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "baseURI",
type: "string"
}, {
indexed: false,
internalType: "bytes",
name: "encryptedBaseURI",
type: "bytes"
}],
name: "LazyMintedTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct ILazyMintERC721.ClaimCondition[]",
name: "claimConditions",
type: "tuple[]"
}],
name: "NewClaimConditions",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "endTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "revealedURI",
type: "string"
}],
name: "RevealedNFT",
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: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "VERSION",
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: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "baseURIIndices",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_receiver",
type: "address"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [],
name: "claimConditions",
outputs: [{
internalType: "uint256",
name: "totalConditionCount",
type: "uint256"
}, {
internalType: "uint256",
name: "timstampLimitIndex",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "defaultSaleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes",
name: "data",
type: "bytes"
}, {
internalType: "bytes",
name: "key",
type: "bytes"
}],
name: "encryptDecrypt",
outputs: [{
internalType: "bytes",
name: "result",
type: "bytes"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "encryptedBaseURI",
outputs: [{
internalType: "bytes",
name: "",
type: "bytes"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
outputs: [{
internalType: "uint120",
name: "",
type: "uint120"
}],
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: "getBaseURICount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_index",
type: "uint256"
}],
name: "getClaimConditionAtIndex",
outputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC721.ClaimCondition",
name: "mintCondition",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getIndexOfActiveCondition",
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: "uint256",
name: "_index",
type: "uint256"
}, {
internalType: "address",
name: "_claimer",
type: "address"
}],
name: "getTimestampForNextValidClaim",
outputs: [{
internalType: "uint256",
name: "nextValidTimestampForClaim",
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: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_amount",
type: "uint256"
}, {
internalType: "string",
name: "_baseURIForTokens",
type: "string"
}, {
internalType: "bytes",
name: "_encryptedBaseURI",
type: "bytes"
}],
name: "lazyMint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToClaim",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}, {
internalType: "bytes",
name: "_key",
type: "bytes"
}],
name: "reveal",
outputs: [{
internalType: "string",
name: "revealedURI",
type: "string"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
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: "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: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC721.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "setClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setDefaultSaleRecipient",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxClaimableSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "supplyClaimed",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeInSecondsBetweenClaims",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct ILazyMintERC721.ClaimCondition[]",
name: "_conditions",
type: "tuple[]"
}],
name: "updateClaimConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_claimer",
type: "address"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "_proofs",
type: "bytes32[]"
}, {
internalType: "uint256",
name: "_conditionIndex",
type: "uint256"
}],
name: "verifyClaim",
outputs: [],
stateMutability: "view",
type: "function"
}];
var _bytecode$f = "0x60a06040523480156200001157600080fd5b5060405162005eb638038062005eb6833981016040819052620000349162000502565b84898981600090805190602001906200004f9291906200035a565b508051620000659060019060208401906200035a565b5050600a80546001600160a01b03199081166001600160a01b03948516179091556001600d556014805482168a8516179055868316608052600f805490911692861692909217909155508651620000c49060139060208a01906200035a565b50601280546001600160781b03831668010000000000000000026001600160b81b03199091166001600160401b0385161717905560006200010462000196565b600e80546001600160a01b0319166001600160a01b03831617905590506200012e600082620001b2565b6200015a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682620001b2565b620001867f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c82620001b2565b5050505050505050505062000641565b6000620001ad620001c260201b620029221760201c565b905090565b620001be8282620001fb565b5050565b600a546000906001600160a01b0316331415620001e6575060131936013560601c90565b620001ad6200023e60201b6200294a1760201c565b6200021282826200024260201b6200294e1760201c565b6000828152600c6020908152604090912062000239918390620029f1620002e8821b17901c565b505050565b3390565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff16620001be576000828152600b602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002a462000196565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002ff836001600160a01b03841662000308565b90505b92915050565b6000818152600183016020526040812054620003515750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000302565b50600062000302565b828054620003689062000604565b90600052602060002090601f0160209004810192826200038c5760008555620003d7565b82601f10620003a757805160ff1916838001178555620003d7565b82800160010185558215620003d7579182015b82811115620003d7578251825591602001919060010190620003ba565b50620003e5929150620003e9565b5090565b5b80821115620003e55760008155600101620003ea565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200042857600080fd5b81516001600160401b038082111562000445576200044562000400565b604051601f8301601f19908116603f0116810190828211818310171562000470576200047062000400565b816040528381526020925086838588010111156200048d57600080fd5b600091505b83821015620004b1578582018301518183018401529082019062000492565b83821115620004c35760008385830101525b9695505050505050565b80516001600160a01b0381168114620004e557600080fd5b919050565b80516001600160801b0381168114620004e557600080fd5b60008060008060008060008060006101208a8c0312156200052257600080fd5b89516001600160401b03808211156200053a57600080fd5b620005488d838e0162000416565b9a5060208c01519150808211156200055f57600080fd5b6200056d8d838e0162000416565b995060408c01519150808211156200058457600080fd5b50620005938c828d0162000416565b975050620005a460608b01620004cd565b9550620005b460808b01620004cd565b9450620005c460a08b01620004cd565b9350620005d460c08b01620004cd565b9250620005e460e08b01620004ea565b9150620005f56101008b01620004ea565b90509295985092959850929598565b600181811c908216806200061957607f821691505b602082108114156200063b57634e487b7160e01b600052602260045260246000fd5b50919050565b60805161583d6200067960003960008181610c4601528181613e2001528181613f1b015281816145a20152614619015261583d6000f3fe6080604052600436106103975760003560e01c806370a08231116101dc578063b88d4fde11610102578063d5391393116100a0578063e8a3d4851161006f578063e8a3d48514610bd6578063e985e9c514610beb578063f9ea29cb14610c34578063ffa1ad7414610c6857600080fd5b8063d539139314610b42578063d547741f14610b76578063d860483f14610b96578063e715032214610bb657600080fd5b8063ca15c873116100dc578063ca15c87314610acd578063ce80564214610aed578063ceb4aff314610b0d578063d37c353b14610b2257600080fd5b8063b88d4fde14610a53578063c63adb2b14610a73578063c87b56dd14610aad57600080fd5b806391d148541161017a578063a22cb46511610149578063a22cb465146109d0578063a3d85fb1146109f0578063ac9650d814610a10578063acd083f814610a3d57600080fd5b806391d1485414610940578063938e3d7b1461098657806395d89b41146109a6578063a217fddf146109bb57600080fd5b80638423df79116101b65780638423df79146108ca5780638ba448c2146108eb5780638da5cb5b1461090b5780639010d07c1461092057600080fd5b806370a082311461086a57806372c27b621461088a57806382909959146108aa57600080fd5b80632a55205a116102c15780633d13f8741161025f578063572b6c051161022e578063572b6c05146107d65780636352211e1461080557806363b45e2d14610825578063666134631461083a57600080fd5b80633d13f8741461076357806342842e0e1461077657806342966c68146107965780634f6ccce7146107b657600080fd5b806333fd29991161029b57806333fd29991461068357806336568abe146106a35780633707d9dc146106c35780633b1475a71461074d57600080fd5b80632a55205a146106045780632f2ff15d146106435780632f745c591461066357600080fd5b806318160ddd1161033957806323b872dd1161030857806323b872dd14610540578063246b436b14610560578063248a9ca31461058057806324a9d853146105b057600080fd5b806318160ddd146104ad5780631f72d831146104cc5780632053a5cc146104ec578063206b60f91461050c57600080fd5b8063095ea7b311610375578063095ea7b31461042b578063097b3cdb1461044d57806313af40351461046d5780631490ee761461048d57600080fd5b806301ffc9a71461039c57806306fdde03146103d1578063081812fc146103f3575b600080fd5b3480156103a857600080fd5b506103bc6103b7366004614c5a565b610c7d565b60405190151581526020015b60405180910390f35b3480156103dd57600080fd5b506103e6610ca9565b6040516103c89190614ccf565b3480156103ff57600080fd5b5061041361040e366004614ce2565b610d3b565b6040516001600160a01b0390911681526020016103c8565b34801561043757600080fd5b5061044b610446366004614d10565b610dd5565b005b34801561045957600080fd5b5061044b610468366004614d88565b610efd565b34801561047957600080fd5b5061044b610488366004614dec565b61120b565b34801561049957600080fd5b5061044b6104a8366004614dec565b611341565b3480156104b957600080fd5b506008545b6040519081526020016103c8565b3480156104d857600080fd5b5061044b6104e7366004614ce2565b6113d8565b3480156104f857600080fd5b5061044b610507366004614e09565b6114bb565b34801561051857600080fd5b506104be7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b34801561054c57600080fd5b5061044b61055b366004614e7e565b611544565b34801561056c57600080fd5b50600f54610413906001600160a01b031681565b34801561058c57600080fd5b506104be61059b366004614ce2565b6000908152600b602052604090206001015490565b3480156105bc57600080fd5b506012546105e4906801000000000000000090046effffffffffffffffffffffffffffff1681565b6040516effffffffffffffffffffffffffffff90911681526020016103c8565b34801561061057600080fd5b5061062461061f366004614ebf565b6115d2565b604080516001600160a01b0390931683526020830191909152016103c8565b34801561064f57600080fd5b5061044b61065e366004614ee1565b611683565b34801561066f57600080fd5b506104be61067e366004614d10565b6116b0565b34801561068f57600080fd5b506104be61069e366004614ee1565b611758565b3480156106af57600080fd5b5061044b6106be366004614ee1565b6117ba565b3480156106cf57600080fd5b506106e36106de366004614ce2565b611856565b6040516103c89190600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c08301526001600160a01b0360e08401511660e083015292915050565b34801561075957600080fd5b506104be60105481565b61044b610771366004614f11565b611921565b34801561078257600080fd5b5061044b610791366004614e7e565b611a91565b3480156107a257600080fd5b5061044b6107b1366004614ce2565b611aac565b3480156107c257600080fd5b506104be6107d1366004614ce2565b611b35565b3480156107e257600080fd5b506103bc6107f1366004614dec565b600a546001600160a01b0391821691161490565b34801561081157600080fd5b50610413610820366004614ce2565b611bd9565b34801561083157600080fd5b506015546104be565b34801561084657600080fd5b50601854601954610855919082565b604080519283526020830191909152016103c8565b34801561087657600080fd5b506104be610885366004614dec565b611c64565b34801561089657600080fd5b5061044b6108a5366004614ce2565b611cfe565b3480156108b657600080fd5b506103e66108c5366004614ce2565b611e03565b3480156108d657600080fd5b506012546103bc90600160b81b900460ff1681565b3480156108f757600080fd5b5061044b610906366004614f7b565b611e9d565b34801561091757600080fd5b50610413611f52565b34801561092c57600080fd5b5061041361093b366004614ebf565b611fab565b34801561094c57600080fd5b506103bc61095b366004614ee1565b6000918252600b602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561099257600080fd5b5061044b6109a1366004614fda565b611fca565b3480156109b257600080fd5b506103e6612023565b3480156109c757600080fd5b506104be600081565b3480156109dc57600080fd5b5061044b6109eb36600461501c565b612032565b3480156109fc57600080fd5b5061044b610a0b366004614e09565b612044565b348015610a1c57600080fd5b50610a30610a2b36600461504a565b6120e6565b6040516103c89190615080565b348015610a4957600080fd5b506104be60115481565b348015610a5f57600080fd5b5061044b610a6e366004615185565b6121db565b348015610a7f57600080fd5b50601254610a949067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016103c8565b348015610ab957600080fd5b506103e6610ac8366004614ce2565b612270565b348015610ad957600080fd5b506104be610ae8366004614ce2565b6123af565b348015610af957600080fd5b506103e6610b083660046151f1565b6123c6565b348015610b1957600080fd5b506104be61261c565b348015610b2e57600080fd5b5061044b610b3d36600461523d565b61270b565b348015610b4e57600080fd5b506104be7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610b8257600080fd5b5061044b610b91366004614ee1565b612857565b348015610ba257600080fd5b506104be610bb1366004614ce2565b61287f565b348015610bc257600080fd5b506103e6610bd13660046152b7565b6128a0565b348015610be257600080fd5b506103e6612915565b348015610bf757600080fd5b506103bc610c06366004615313565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610c4057600080fd5b506104137f000000000000000000000000000000000000000000000000000000000000000081565b348015610c7457600080fd5b506104be600281565b6000610c8882612a06565b80610ca357506001600160e01b0319821663152a902d60e11b145b92915050565b606060008054610cb890615341565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce490615341565b8015610d315780601f10610d0657610100808354040283529160200191610d31565b820191906000526020600020905b815481529060010190602001808311610d1457829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610db95760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610de082611bd9565b9050806001600160a01b0316836001600160a01b03161415610e4e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610db0565b806001600160a01b0316610e60612a2b565b6001600160a01b03161480610e7c5750610e7c81610c06612a2b565b610eee5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610db0565b610ef88383612a35565b505050565b6000818152601a6020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e08201528415801590610f83575080606001518511155b610fcf5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964207175616e7469747920636c61696d65642e000000000000006044820152606401610db0565b8060200151858260400151610fe49190615392565b11156110325760405162461bcd60e51b815260206004820152601760248201527f657863656564206d6178206d696e7420737570706c792e0000000000000000006044820152606401610db0565b601054856011546110439190615392565b11156110915760405162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f756768206d696e74656420746f6b656e732e000000000000006044820152606401610db0565b6019546000906110a19084615392565b6001600160a01b0388166000908152601b602090815260408083208484529091528120549192506110d2858a611758565b90508115806110e15750804210155b61112d5760405162461bcd60e51b815260206004820152601160248201527f63616e6e6f7420636c61696d207965742e0000000000000000000000000000006044820152606401610db0565b60a084015115611200576040516bffffffffffffffffffffffff1960608b901b1660208201526000906034016040516020818303038152906040528051906020012090506111b288888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060a087015183612aa3565b6111fe5760405162461bcd60e51b815260206004820152601160248201527f6e6f7420696e2077686974656c6973742e0000000000000000000000000000006044820152606401610db0565b505b505050505050505050565b611218600061095b612a2b565b6112585760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b6001600160a01b03811660009081527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76602052604090205460ff166112df5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610db0565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491015b60405180910390a15050565b61134e600061095b612a2b565b61138e5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f7469c47fe13b9fc961c218a4b283151f80fc15e3a95e1d1b95aeace021f3d0cc90600090a250565b6113e5600061095b612a2b565b6114255760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b6127108111156114675760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610db0565b6012805467ffffffffffffffff191667ffffffffffffffff83161790556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b6114c8600061095b612a2b565b6115085760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b6115128282612ab9565b507fcf5c78d906c121f34b51400d28b5f2ea0670bb6392c731a1abf62f32ca92511882826040516113359291906153aa565b61155561154f612a2b565b82612e88565b6115c75760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610db0565b610ef8838383612f7f565b60145460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116529190615441565b601254909250612710906116709067ffffffffffffffff168561545e565b61167a9190615493565b90509250929050565b6000828152600b60205260409020600101546116a6816116a1612a2b565b61313e565b610ef883836131be565b60006116bb83611c64565b821061172f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610db0565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b601954600090819061176a9085615392565b6001600160a01b0384166000908152601b60209081526040808320848452825280832054888452601a9092529091206004015481019350909150808310156117b25760001992505b505092915050565b6117c2612a2b565b6001600160a01b0316816001600160a01b0316146118485760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610db0565b61185282826131e0565b5050565b6118aa6040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b031681525090565b506000908152601a6020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e082015290565b6002600d5414156119745760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610db0565b6002600d55601154600061198661261c565b6000818152601a6020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e0820152909150611a10611a07612a2b565b87878786610efd565b611a1a8187613202565b611a258783886133b1565b866001600160a01b0316611a37612a2b565b6001600160a01b0316837faf1e1d601fecda9f5eba2b8827408bd49c1694335fb8dce97a322495edc87017868a604051611a7b929190918252602082015260400190565b60405180910390a450506001600d555050505050565b610ef8838383604051806020016040528060008152506121db565b611ab761154f612a2b565b611b295760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f766564000000000000000000000000000000006064820152608401610db0565b611b3281613460565b50565b6000611b4060085490565b8210611bb45760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610db0565b60088281548110611bc757611bc76154a7565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b031680610ca35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610db0565b60006001600160a01b038216611ce25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610db0565b506001600160a01b031660009081526003602052604090205490565b611d0b600061095b612a2b565b611d4b5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b612710811115611d8d5760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610db0565b601280547fffffffffffffffffff000000000000000000000000000000ffffffffffffffff16680100000000000000006effffffffffffffffffffffffffffff8416021790556040518181527f2440645f96173394eb0d508ef9d0c95e3ddc41c6a10ef86e547fc738df9ecce2906020016114b0565b60176020526000908152604090208054611e1c90615341565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4890615341565b8015611e955780601f10611e6a57610100808354040283529160200191611e95565b820191906000526020600020905b815481529060010190602001808311611e7857829003601f168201915b505050505081565b611eaa600061095b612a2b565b611eea5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b60128054821515600160b81b027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff9091161790556040517f2ebd4f59eaa9d49c5dcd06a0afa8b39bf09928fbd60111acee2f986fa485d098906114b090831515815260200190565b600e546001600160a01b031660009081527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f76602052604081205460ff16611f995750600090565b600e546001600160a01b03165b905090565b6000828152600c60205260408120611fc39083613507565b9392505050565b611fd7600061095b612a2b565b6120175760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b610ef860138383614b01565b606060018054610cb890615341565b61185261203d612a2b565b8383613513565b612051600061095b612a2b565b6120915760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610db0565b600061209d8383612ab9565b90506120a8816135e2565b7fcf5c78d906c121f34b51400d28b5f2ea0670bb6392c731a1abf62f32ca92511883836040516120d99291906153aa565b60405180910390a1505050565b60608167ffffffffffffffff811115612101576121016150e2565b60405190808252806020026020018201604052801561213457816020015b606081526020019060019003908161211f5790505b50905060005b828110156121d4576121a430858584818110612158576121586154a7565b905060200281019061216a91906154bd565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135ff92505050565b8282815181106121b6576121b66154a7565b602002602001018190525080806121cc90615504565b91505061213a565b5092915050565b6121ec6121e6612a2b565b83612e88565b61225e5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610db0565b61226a84848484613624565b50505050565b606060005b6015548110156123995760158181548110612292576122926154a7565b90600052602060002001548310156123875760176000601583815481106122bb576122bb6154a7565b9060005260206000200154815260200190815260200160002080546122df90615341565b15905061233d5760166000601583815481106122fd576122fd6154a7565b9060005260206000200154815260200190815260200160002060405160200161232691906155b9565b604051602081830303815290604052915050919050565b6016600060158381548110612354576123546154a7565b90600052602060002001548152602001908152602001600020612376846136ad565b6040516020016123269291906155d6565b612392600182615392565b9050612275565b5050604080516020810190915260008152919050565b6000818152600c60205260408120610ca3906137ab565b60606123f47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661095b612a2b565b61242e5760405162461bcd60e51b815260206004820152600b60248201526a3737ba1036b4b73a32b91760a91b6044820152606401610db0565b601554841061247f5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c696420696e6465782e0000000000000000000000000000000000006044820152606401610db0565b600060158581548110612494576124946154a7565b9060005260206000200154905060006017600083815260200190815260200160002080546124c190615341565b80601f01602080910402602001604051908101604052809291908181526020018280546124ed90615341565b801561253a5780601f1061250f5761010080835404028352916020019161253a565b820191906000526020600020905b81548152906001019060200180831161251d57829003601f168201915b505050505090508051600014156125935760405162461bcd60e51b815260206004820152601260248201527f6e6f7468696e6720746f2072657665616c2e00000000000000000000000000006044820152606401610db0565b61259e8186866128a0565b600083815260166020908152604090912082519295506125c2929091860190614b85565b5060008281526017602052604081206125da91614bf9565b7fb7b73acc4ee8e0e7ce0fabfe74f20b42e06d9c84b5cc6ea4d25f8571adfb5ee1828460405161260b9291906155fb565b60405180910390a150509392505050565b6018546000908061266f5760405162461bcd60e51b815260206004820152601960248201527f6e6f207075626c6963206d696e7420636f6e646974696f6e2e000000000000006044820152606401610db0565b805b80156126c257601a6000612686600184615614565b81526020019081526020016000206000015442106126b0576126a9600182615614565b9250505090565b6126bb600182615614565b9050612671565b5060405162461bcd60e51b815260206004820152601960248201527f6e6f20616374697665206d696e7420636f6e646974696f6e2e000000000000006044820152606401610db0565b6127377f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661095b612a2b565b6127715760405162461bcd60e51b815260206004820152600b60248201526a3737ba1036b4b73a32b91760a91b6044820152606401610db0565b60105460006127808783615392565b601081905560008181526016602052604090209091506127a1908787614b01565b50601580546001810182556000919091527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec4750181905582156127f85760008181526017602052604090206127f6908585614b01565b505b7f016a895406c08a8f4c8b567d144b44fca97431afe765ee9e31fc1f01c3a2aa1a8260016128268a83615392565b6128309190615614565b8888888860405161284696959493929190615654565b60405180910390a150505050505050565b6000828152600b6020526040902060010154612875816116a1612a2b565b610ef883836131e0565b6015818154811061288f57600080fd5b600091825260209091200154905081565b8251604080518083016020019091528181529060005b8181101561290c5760008585836040516020016128d593929190615694565b60408051601f19818403018152919052805160209182012088840182015118858401820152612905915082615392565b90506128b6565b50509392505050565b60138054611e1c90615341565b600a546000906001600160a01b0316331415612945575060131936013560601c90565b503390565b3390565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff16611852576000828152600b602090815260408083206001600160a01b03851684529091529020805460ff191660011790556129ad612a2b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611fc3836001600160a01b0384166137b5565b60006001600160e01b03198216635a05180f60e01b1480610ca35750610ca382613804565b6000611fa6612922565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612a6a82611bd9565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600082612ab08584613829565b14949350505050565b60008060005b83811015612e0457811580612aef5750848482818110612ae157612ae16154a7565b905061010002016000013582105b612b615760405162461bcd60e51b815260206004820152602a60248201527f737461727454696d657374616d70206d75737420626520696e20617363656e6460448201527f696e67206f726465722e000000000000000000000000000000000000000000006064820152608401610db0565b6000858583818110612b7557612b756154a7565b905061010002016020013511612bcd5760405162461bcd60e51b815260206004820152601c60248201527f6d6178206d696e7420737570706c792063616e6e6f7420626520302e000000006044820152606401610db0565b6000858583818110612be157612be16154a7565b905061010002016060013511612c395760405162461bcd60e51b815260206004820152601b60248201527f7175616e74697479206c696d69742063616e6e6f7420626520302e00000000006044820152606401610db0565b604051806101000160405280868684818110612c5757612c576154a7565b90506101000201600001358152602001868684818110612c7957612c796154a7565b9050610100020160200135815260200160008152602001868684818110612ca257612ca26154a7565b90506101000201606001358152602001868684818110612cc457612cc46154a7565b90506101000201608001358152602001868684818110612ce657612ce66154a7565b9050610100020160a001358152602001868684818110612d0857612d086154a7565b9050610100020160c001358152602001868684818110612d2a57612d2a6154a7565b9050610100020160e0016020810190612d439190614dec565b6001600160a01b039081169091526000858152601a60209081526040918290208451815590840151600180830191909155918401516002820155606084015160038201556080840151600482015560a0840151600582015560c0840151600682015560e090930151600790930180546001600160a01b03191693909216929092179055612dd09084615392565b9250848482818110612de457612de46154a7565b905061010002016000013591508080612dfc90615504565b915050612abf565b5060185480831015612e7b57825b81811015612e79576000818152601a60205260408120818155600180820183905560028201839055600382018390556004820183905560058201839055600682019290925560070180546001600160a01b0319169055612e729082615392565b9050612e12565b505b5050601881905592915050565b6000818152600260205260408120546001600160a01b0316612f015760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610db0565b6000612f0c83611bd9565b9050806001600160a01b0316846001600160a01b03161480612f475750836001600160a01b0316612f3c84610d3b565b6001600160a01b0316145b80612f7757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316612f9282611bd9565b6001600160a01b03161461300e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610db0565b6001600160a01b0382166130705760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610db0565b61307b8383836138d5565b613086600082612a35565b6001600160a01b03831660009081526003602052604081208054600192906130af908490615614565b90915550506001600160a01b03821660009081526003602052604081208054600192906130dd908490615392565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff166118525761317c816001600160a01b031660146139ef565b6131878360206139ef565b6040516020016131989291906156a6565b60408051601f198184030181529082905262461bcd60e51b8252610db091600401614ccf565b6131c8828261294e565b6000828152600c60205260409020610ef890826129f1565b6131ea8282613b98565b6000828152600c60205260409020610ef89082613c39565b60c082015161320f575050565b60008260c0015182613221919061545e565b60125490915060009061271090613255906801000000000000000090046effffffffffffffffffffffffffffff168461545e565b61325f9190615493565b60e08501519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156132df578134146132da5760405162461bcd60e51b815260206004820152601660248201527f6d7573742073656e6420746f74616c2070726963652e000000000000000000006044820152606401610db0565b6132f5565b6132f56132ea612a2b565b8560e0015184613c4e565b6133868460e00151613305612a2b565b60145460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b15801561334857600080fd5b505afa15801561335c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133809190615441565b84613dca565b61226a8460e00151613396612a2b565b600f546001600160a01b03166133ac8587615614565b613dca565b6000828152601a6020526040812060020180548392906133d2908490615392565b90915550506019546000906133e79084615392565b905042601b60006133f6612a2b565b6001600160a01b0316815260208082019290925260409081016000908120858252909252812091909155601154905b83811015613456576134378683613fa8565b613442600183615392565b915061344f600182615392565b9050613425565b5060115550505050565b600061346b82611bd9565b9050613479816000846138d5565b613484600083612a35565b6001600160a01b03811660009081526003602052604081208054600192906134ad908490615614565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000611fc383836140f6565b816001600160a01b0316836001600160a01b031614156135755760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610db0565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b80601860010160008282546135f79190615392565b909155505050565b6060611fc3838360405180606001604052806027815260200161580a60279139614120565b61362f848484612f7f565b61363b8484848461420b565b61226a5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610db0565b6060816136d15750506040805180820190915260018152600360fc1b602082015290565b8160005b81156136fb57806136e581615504565b91506136f49050600a83615493565b91506136d5565b60008167ffffffffffffffff811115613716576137166150e2565b6040519080825280601f01601f191660200182016040528015613740576020820181803683370190505b5090505b8415612f7757613755600183615614565b9150613762600a86615727565b61376d906030615392565b60f81b818381518110613782576137826154a7565b60200101906001600160f81b031916908160001a9053506137a4600a86615493565b9450613744565b6000610ca3825490565b60008181526001830160205260408120546137fc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ca3565b506000610ca3565b60006001600160e01b03198216637965db0b60e01b1480610ca35750610ca382614375565b600081815b84518110156138cd57600085828151811061384b5761384b6154a7565b6020026020010151905080831161388d5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506138ba565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806138c581615504565b91505061382e565b509392505050565b6138e083838361439a565b601254600160b81b900460ff16801561390157506001600160a01b03831615155b801561391557506001600160a01b03821615155b15610ef8576001600160a01b03831660009081527f0a1d1818844cd1cb435b1f58baa821febb23dfe0487ae67aa143cacb2b11bba7602052604090205460ff168061399757506001600160a01b03821660009081527f0a1d1818844cd1cb435b1f58baa821febb23dfe0487ae67aa143cacb2b11bba7602052604090205460ff165b610ef85760405162461bcd60e51b815260206004820152602360248201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526265727360e81b6064820152608401610db0565b606060006139fe83600261545e565b613a09906002615392565b67ffffffffffffffff811115613a2157613a216150e2565b6040519080825280601f01601f191660200182016040528015613a4b576020820181803683370190505b509050600360fc1b81600081518110613a6657613a666154a7565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a9557613a956154a7565b60200101906001600160f81b031916908160001a9053506000613ab984600261545e565b613ac4906001615392565b90505b6001811115613b49577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613b0557613b056154a7565b1a60f81b828281518110613b1b57613b1b6154a7565b60200101906001600160f81b031916908160001a90535060049490941c93613b428161573b565b9050613ac7565b508315611fc35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610db0565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff1615611852576000828152600b602090815260408083206001600160a01b03851684529091529020805460ff19169055613bf5612a2b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611fc3836001600160a01b038416614452565b6040516370a0823160e01b81526001600160a01b0384811660048301528291908416906370a082319060240160206040518083038186803b158015613c9257600080fd5b505afa158015613ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cca9190615752565b10158015613d585750604051636eb1769f60e11b81526001600160a01b03848116600483015230602483015282919084169063dd62ed3e9060440160206040518083038186803b158015613d1d57600080fd5b505afa158015613d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d559190615752565b10155b610ef85760405162461bcd60e51b815260206004820152602b60248201527f696e73756666696369656e742063757272656e63792062616c616e6365206f7260448201527f20616c6c6f77616e63652e0000000000000000000000000000000000000000006064820152608401610db0565b80613dd45761226a565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415613f9c576001600160a01b038316301415613e9357604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613e6c57600080fd5b505af1158015613e80573d6000803e3d6000fd5b50505050613e8e8282614545565b61226a565b6001600160a01b038216301415613f9257348114613f195760405162461bcd60e51b815260206004820152602d60248201527f6e617469766520746f6b656e2076616c756520646f6573206e6f74206d61746360448201527f682062696420616d6f756e742e000000000000000000000000000000000000006064820152608401610db0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613f7457600080fd5b505af1158015613f88573d6000803e3d6000fd5b505050505061226a565b613e8e8282614545565b61226a8484848461463c565b6001600160a01b038216613ffe5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610db0565b6000818152600260205260409020546001600160a01b0316156140635760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610db0565b61406f600083836138d5565b6001600160a01b0382166000908152600360205260408120805460019290614098908490615392565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600082600001828154811061410d5761410d6154a7565b9060005260206000200154905092915050565b6060833b6141965760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610db0565b600080856001600160a01b0316856040516141b1919061576b565b600060405180830381855af49150503d80600081146141ec576040519150601f19603f3d011682016040523d82523d6000602084013e6141f1565b606091505b50915091506142018282866148e8565b9695505050505050565b60006001600160a01b0384163b1561436a57836001600160a01b031663150b7a02614234612a2b565b8786866040518563ffffffff1660e01b81526004016142569493929190615787565b602060405180830381600087803b15801561427057600080fd5b505af19250505080156142a0575060408051601f3d908101601f1916820190925261429d918101906157b9565b60015b614350573d8080156142ce576040519150601f19603f3d011682016040523d82523d6000602084013e6142d3565b606091505b5080516143485760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610db0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612f77565b506001949350505050565b60006001600160e01b0319821663780e9d6360e01b1480610ca35750610ca382614921565b6001600160a01b0383166143f5576143f081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614418565b816001600160a01b0316836001600160a01b031614614418576144188382614971565b6001600160a01b03821661442f57610ef881614a0e565b826001600160a01b0316826001600160a01b031614610ef857610ef88282614abd565b6000818152600183016020526040812054801561453b576000614476600183615614565b855490915060009061448a90600190615614565b90508181146144ef5760008660000182815481106144aa576144aa6154a7565b90600052602060002001549050808760000184815481106144cd576144cd6154a7565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614500576145006157d6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ca3565b6000915050610ca3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614592576040519150601f19603f3d011682016040523d82523d6000602084013e614597565b606091505b5050905080610ef8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156145fb57600080fd5b505af115801561460f573d6000803e3d6000fd5b5050505050610ef87f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b0316141561465b5761226a565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b1580156146a057600080fd5b505afa1580156146b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146d89190615752565b905060006001600160a01b038516301461477b576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528716906323b872dd90606401602060405180830381600087803b15801561473e57600080fd5b505af1158015614752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061477691906157ec565b6147fd565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b1580156147c557600080fd5b505af11580156147d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147fd91906157ec565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b15801561484457600080fd5b505afa158015614858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061487c9190615752565b905081801561489357506148908484615392565b81145b6148df5760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e000000006044820152606401610db0565b50505050505050565b606083156148f7575081611fc3565b8251156149075782518084602001fd5b8160405162461bcd60e51b8152600401610db09190614ccf565b60006001600160e01b031982166380ac58cd60e01b148061495257506001600160e01b03198216635b5e139f60e01b145b80610ca357506301ffc9a760e01b6001600160e01b0319831614610ca3565b6000600161497e84611c64565b6149889190615614565b6000838152600760205260409020549091508082146149db576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090614a2090600190615614565b60008381526009602052604081205460088054939450909284908110614a4857614a486154a7565b906000526020600020015490508060088381548110614a6957614a696154a7565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480614aa157614aa16157d6565b6001900381819060005260206000200160009055905550505050565b6000614ac883611c64565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b828054614b0d90615341565b90600052602060002090601f016020900481019282614b2f5760008555614b75565b82601f10614b485782800160ff19823516178555614b75565b82800160010185558215614b75579182015b82811115614b75578235825591602001919060010190614b5a565b50614b81929150614c2f565b5090565b828054614b9190615341565b90600052602060002090601f016020900481019282614bb35760008555614b75565b82601f10614bcc57805160ff1916838001178555614b75565b82800160010185558215614b75579182015b82811115614b75578251825591602001919060010190614bde565b508054614c0590615341565b6000825580601f10614c15575050565b601f016020900490600052602060002090810190611b3291905b5b80821115614b815760008155600101614c30565b6001600160e01b031981168114611b3257600080fd5b600060208284031215614c6c57600080fd5b8135611fc381614c44565b60005b83811015614c92578181015183820152602001614c7a565b8381111561226a5750506000910152565b60008151808452614cbb816020860160208601614c77565b601f01601f19169290920160200192915050565b602081526000611fc36020830184614ca3565b600060208284031215614cf457600080fd5b5035919050565b6001600160a01b0381168114611b3257600080fd5b60008060408385031215614d2357600080fd5b8235614d2e81614cfb565b946020939093013593505050565b60008083601f840112614d4e57600080fd5b50813567ffffffffffffffff811115614d6657600080fd5b6020830191508360208260051b8501011115614d8157600080fd5b9250929050565b600080600080600060808688031215614da057600080fd5b8535614dab81614cfb565b945060208601359350604086013567ffffffffffffffff811115614dce57600080fd5b614dda88828901614d3c565b96999598509660600135949350505050565b600060208284031215614dfe57600080fd5b8135611fc381614cfb565b60008060208385031215614e1c57600080fd5b823567ffffffffffffffff80821115614e3457600080fd5b818501915085601f830112614e4857600080fd5b813581811115614e5757600080fd5b8660208260081b8501011115614e6c57600080fd5b60209290920196919550909350505050565b600080600060608486031215614e9357600080fd5b8335614e9e81614cfb565b92506020840135614eae81614cfb565b929592945050506040919091013590565b60008060408385031215614ed257600080fd5b50508035926020909101359150565b60008060408385031215614ef457600080fd5b823591506020830135614f0681614cfb565b809150509250929050565b60008060008060608587031215614f2757600080fd5b8435614f3281614cfb565b935060208501359250604085013567ffffffffffffffff811115614f5557600080fd5b614f6187828801614d3c565b95989497509550505050565b8015158114611b3257600080fd5b600060208284031215614f8d57600080fd5b8135611fc381614f6d565b60008083601f840112614faa57600080fd5b50813567ffffffffffffffff811115614fc257600080fd5b602083019150836020828501011115614d8157600080fd5b60008060208385031215614fed57600080fd5b823567ffffffffffffffff81111561500457600080fd5b61501085828601614f98565b90969095509350505050565b6000806040838503121561502f57600080fd5b823561503a81614cfb565b91506020830135614f0681614f6d565b6000806020838503121561505d57600080fd5b823567ffffffffffffffff81111561507457600080fd5b61501085828601614d3c565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156150d557603f198886030184526150c3858351614ca3565b945092850192908501906001016150a7565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261510957600080fd5b813567ffffffffffffffff80821115615124576151246150e2565b604051601f8301601f19908116603f0116810190828211818310171561514c5761514c6150e2565b8160405283815286602085880101111561516557600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561519b57600080fd5b84356151a681614cfb565b935060208501356151b681614cfb565b925060408501359150606085013567ffffffffffffffff8111156151d957600080fd5b6151e5878288016150f8565b91505092959194509250565b60008060006040848603121561520657600080fd5b83359250602084013567ffffffffffffffff81111561522457600080fd5b61523086828701614f98565b9497909650939450505050565b60008060008060006060868803121561525557600080fd5b85359450602086013567ffffffffffffffff8082111561527457600080fd5b61528089838a01614f98565b9096509450604088013591508082111561529957600080fd5b506152a688828901614f98565b969995985093965092949392505050565b6000806000604084860312156152cc57600080fd5b833567ffffffffffffffff808211156152e457600080fd5b6152f0878388016150f8565b9450602086013591508082111561530657600080fd5b5061523086828701614f98565b6000806040838503121561532657600080fd5b823561533181614cfb565b91506020830135614f0681614cfb565b600181811c9082168061535557607f821691505b6020821081141561537657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156153a5576153a561537c565b500190565b6020808252818101839052600090604080840186845b87811015615434578135835284820135858401528382013584840152606080830135908401526080808301359084015260a0808301359084015260c0808301359084015260e08083013561541381614cfb565b6001600160a01b0316908401526101009283019291909101906001016153c0565b5090979650505050505050565b60006020828403121561545357600080fd5b8151611fc381614cfb565b60008160001904831182151516156154785761547861537c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826154a2576154a261547d565b500490565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126154d457600080fd5b83018035915067ffffffffffffffff8211156154ef57600080fd5b602001915036819003821315614d8157600080fd5b60006000198214156155185761551861537c565b5060010190565b8054600090600181811c908083168061553957607f831692505b602080841082141561555b57634e487b7160e01b600052602260045260246000fd5b81801561556f5760018114615580576155ad565b60ff198616895284890196506155ad565b60008881526020902060005b868110156155a55781548b82015290850190830161558c565b505084890196505b50505050505092915050565b60006155c5828461551f565b600360fc1b81526001019392505050565b60006155e2828561551f565b83516155f2818360208801614c77565b01949350505050565b828152604060208201526000612f776040830184614ca3565b6000828210156156265761562661537c565b500390565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b86815285602082015260806040820152600061567460808301868861562b565b828103606084015261568781858761562b565b9998505050505050505050565b82848237909101908152602001919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156de816017850160208801614c77565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571b816028840160208801614c77565b01602801949350505050565b6000826157365761573661547d565b500690565b60008161574a5761574a61537c565b506000190190565b60006020828403121561576457600080fd5b5051919050565b6000825161577d818460208701614c77565b9190910192915050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526142016080830184614ca3565b6000602082840312156157cb57600080fd5b8151611fc381614c44565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156157fe57600080fd5b8151611fc381614f6d56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$f = function isSuperArgs(xs) {
return xs.length > 1;
};
var LazyMintERC721__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(LazyMintERC721__factory, _ContractFactory);
function LazyMintERC721__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$f(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$Z, _bytecode$f, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = LazyMintERC721__factory.prototype;
_proto.deploy = function deploy(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
LazyMintERC721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$Z);
};
LazyMintERC721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$Z, signerOrProvider);
};
return LazyMintERC721__factory;
}(ContractFactory);
LazyMintERC721__factory.bytecode = _bytecode$f;
LazyMintERC721__factory.abi = _abi$Z;
var _abi$_ = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_contractUri",
type: "string"
}, {
internalType: "string",
name: "_baseTokenUri",
type: "string"
}, {
internalType: "uint256",
name: "_maxSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}, {
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
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: false,
internalType: "string",
name: "uri",
type: "string"
}],
name: "BaseTokenURIUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "startTokenId",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "mintConditionIndex",
type: "uint256"
}],
name: "Claimed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "feeBps",
type: "uint256"
}],
name: "FeeUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "FundsWithdrawn",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "currentMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeSecondsLimitPerTransaction",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
indexed: false,
internalType: "struct LazyNFT.PublicMintCondition[]",
name: "mintConditions",
type: "tuple[]"
}],
name: "PublicMintConditionUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "supply",
type: "uint256"
}],
name: "TotalSupplyUpdated",
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "bytes32[]",
name: "proofs",
type: "bytes32[]"
}],
name: "claim",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
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: "getLastStartedMintConditionIndex",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getMintConditionCount",
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: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "lazyMintAmount",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string[]",
name: "_uris",
type: "string[]"
}],
name: "lazyMintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "maxTotalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "mintConditions",
outputs: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "currentMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeSecondsLimitPerTransaction",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "nextMintTimestampByCondition",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextMintTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "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: [],
name: "saleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "string",
name: "_uri",
type: "string"
}],
name: "setBaseTokenURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "maxSupply",
type: "uint256"
}],
name: "setMaxTotalSupply",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "uint256",
name: "startTimestamp",
type: "uint256"
}, {
internalType: "uint256",
name: "maxMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "currentMintSupply",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityLimitPerTransaction",
type: "uint256"
}, {
internalType: "uint256",
name: "waitTimeSecondsLimitPerTransaction",
type: "uint256"
}, {
internalType: "bytes32",
name: "merkleRoot",
type: "bytes32"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
internalType: "struct LazyNFT.PublicMintCondition[]",
name: "conditions",
type: "tuple[]"
}],
name: "setPublicMintConditions",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setSaleRecipient",
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: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$g = "0x60806040523480156200001157600080fd5b50604051620054c1380380620054c18339810160408190526200003491620006cb565b86898981600290805190602001906200004f9291906200053b565b508051620000659060039060208401906200053b565b5050600c80546001600160a81b0319166101006001600160a01b039485168102919091179091556001600d5560178054610100600160a81b031916938e1690910292909217909155508551620000c39060199060208901906200053b565b508451620000d990601a9060208801906200053b565b50600f849055601880546001600160a01b0319166001600160a01b03831617905562000104620001be565b600e80546001600160a01b0319166001600160a01b03929092169190911790556200013a600062000134620001be565b620001da565b620001697f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000134620001be565b620001987f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c62000134620001be565b620001a382620001ea565b620001ae83620002c5565b5050505050505050505062000819565b6000620001d56200039060201b620028d41760201c565b905090565b620001e68282620003cf565b5050565b620002006000620001fa620001be565b62000412565b620002465760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b60448201526064015b60405180910390fd5b612710811115620002895760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b60448201526064016200023d565b60168190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76906020015b60405180910390a150565b620002d56000620001fa620001be565b620003175760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b60448201526064016200023d565b6127108111156200035a5760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b60448201526064016200023d565b60158190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b390602001620002ba565b600c546000906001600160a01b0361010090910416331415620003ba575060131936013560601c90565b620001d56200043d60201b620029011760201c565b620003e682826200044160201b620029051760201c565b60008281526001602090815260409091206200040d918390620029a4620004cb821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b6200044d828262000412565b620001e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905562000487620001be565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620004e2836001600160a01b038416620004e9565b9392505050565b6000818152600183016020526040812054620005325750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000437565b50600062000437565b8280546200054990620007dc565b90600052602060002090601f0160209004810192826200056d5760008555620005b8565b82601f106200058857805160ff1916838001178555620005b8565b82800160010185558215620005b8579182015b82811115620005b85782518255916020019190600101906200059b565b50620005c6929150620005ca565b5090565b5b80821115620005c65760008155600101620005cb565b80516001600160a01b0381168114620005f957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200062657600080fd5b81516001600160401b0380821115620006435762000643620005fe565b604051601f8301601f19908116603f011681019082821181831017156200066e576200066e620005fe565b816040528381526020925086838588010111156200068b57600080fd5b600091505b83821015620006af578582018301518183018401529082019062000690565b83821115620006c15760008385830101525b9695505050505050565b6000806000806000806000806000806101408b8d031215620006ec57600080fd5b620006f78b620005e1565b60208c0151909a506001600160401b03808211156200071557600080fd5b620007238e838f0162000614565b9a5060408d01519150808211156200073a57600080fd5b620007488e838f0162000614565b99506200075860608e01620005e1565b985060808d01519150808211156200076f57600080fd5b6200077d8e838f0162000614565b975060a08d01519150808211156200079457600080fd5b50620007a38d828e0162000614565b95505060c08b0151935060e08b015192506101008b01519150620007cb6101208c01620005e1565b90509295989b9194979a5092959850565b600181811c90821680620007f157607f821691505b602082108114156200081357634e487b7160e01b600052602260045260246000fd5b50919050565b614c9880620008296000396000f3fe60806040526004361061036b5760003560e01c80635b019b76116101c6578063a217fddf116100f7578063ca15c87311610095578063e88fbd411161006f578063e88fbd4114610a5a578063e8a3d48514610a70578063e985e9c514610a85578063fd59855014610ace57600080fd5b8063ca15c873146109e6578063d539139314610a06578063d547741f14610a3a57600080fd5b8063b7cdd0bc116100d1578063b7cdd0bc14610970578063b88d4fde14610990578063c63adb2b146109b0578063c87b56dd146109c657600080fd5b8063a217fddf1461090e578063a22cb46514610923578063ac9650d81461094357600080fd5b80638423df79116101645780639010d07c1161013e5780639010d07c1461087557806391d1485414610895578063938e3d7b146108d957806395d89b41146108f957600080fd5b80638423df79146108265780638ba448c2146108405780638da5cb5b1461086057600080fd5b80636352211e116101a05780636352211e146107b057806370a08231146107d057806372c27b62146107f057806375794a3c1461081057600080fd5b80635b019b76146107635780635c975abb146107835780635da53d581461079b57600080fd5b80632a55205a116102a05780633f3e4c111161023e57806342966c681161021857806342966c68146106cf5780634ce40a32146106ef5780634f6ccce71461070f578063572b6c051461072f57600080fd5b80633f3e4c111461066f578063428131081461068f57806342842e0e146106af57600080fd5b80632f52ebb71161027a5780632f52ebb7146105fc5780632f745c591461060f57806330176e131461062f57806336568abe1461064f57600080fd5b80632a55205a146105875780632ab4d052146105c65780632f2ff15d146105dc57600080fd5b80631df952db1161030d578063206b60f9116102e7578063206b60f9146104ed57806323b872dd14610521578063248a9ca31461054157806324a9d8531461057157600080fd5b80631df952db146104805780631edab081146104955780631f72d831146104cd57600080fd5b8063095ea7b311610349578063095ea7b3146103ff57806313af40351461042157806318160ddd146104415780631c908d981461046057600080fd5b806301ffc9a71461037057806306fdde03146103a5578063081812fc146103c7575b600080fd5b34801561037c57600080fd5b5061039061038b3660046143a0565b610b32565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103ba610b5e565b60405161039c9190614415565b3480156103d357600080fd5b506103e76103e2366004614428565b610bf0565b6040516001600160a01b03909116815260200161039c565b34801561040b57600080fd5b5061041f61041a366004614456565b610c8a565b005b34801561042d57600080fd5b5061041f61043c366004614482565b610db2565b34801561044d57600080fd5b50600a545b60405190815260200161039c565b34801561046c57600080fd5b5061041f61047b366004614482565b610ee8565b34801561048c57600080fd5b50601254610452565b3480156104a157600080fd5b506104526104b0366004614456565b601360209081526000928352604080842090915290825290205481565b3480156104d957600080fd5b5061041f6104e8366004614428565b610f57565b3480156104f957600080fd5b506104527f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b34801561052d57600080fd5b5061041f61053c36600461449f565b611021565b34801561054d57600080fd5b5061045261055c366004614428565b60009081526020819052604090206001015490565b34801561057d57600080fd5b5061045260165481565b34801561059357600080fd5b506105a76105a23660046144e0565b6110af565b604080516001600160a01b03909316835260208301919091520161039c565b3480156105d257600080fd5b50610452600f5481565b3480156105e857600080fd5b5061041f6105f7366004614502565b61115a565b61041f61060a36600461457e565b611187565b34801561061b57600080fd5b5061045261062a366004614456565b611761565b34801561063b57600080fd5b5061041f61064a3660046145ca565b611809565b34801561065b57600080fd5b5061041f61066a366004614502565b611894565b34801561067b57600080fd5b5061041f61068a366004614428565b611930565b34801561069b57600080fd5b5061041f6106aa36600461463c565b6119b2565b3480156106bb57600080fd5b5061041f6106ca36600461449f565b611db9565b3480156106db57600080fd5b5061041f6106ea366004614428565b611dd4565b3480156106fb57600080fd5b5061041f61070a36600461469f565b611e5d565b34801561071b57600080fd5b5061045261072a366004614428565b611f95565b34801561073b57600080fd5b5061039061074a366004614482565b600c5461010090046001600160a01b0390811691161490565b34801561076f57600080fd5b506018546103e7906001600160a01b031681565b34801561078f57600080fd5b50600c5460ff16610390565b3480156107a757600080fd5b50610452612039565b3480156107bc57600080fd5b506103e76107cb366004614428565b612136565b3480156107dc57600080fd5b506104526107eb366004614482565b6121c1565b3480156107fc57600080fd5b5061041f61080b366004614428565b61225b565b34801561081c57600080fd5b5061045260105481565b34801561083257600080fd5b506017546103909060ff1681565b34801561084c57600080fd5b5061041f61085b3660046146ef565b61231e565b34801561086c57600080fd5b506103e76123ac565b34801561088157600080fd5b506103e76108903660046144e0565b612405565b3480156108a157600080fd5b506103906108b0366004614502565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156108e557600080fd5b5061041f6108f43660046145ca565b612424565b34801561090557600080fd5b506103ba61247d565b34801561091a57600080fd5b50610452600081565b34801561092f57600080fd5b5061041f61093e36600461470c565b61248c565b34801561094f57600080fd5b5061096361095e36600461469f565b61249e565b60405161039c919061473a565b34801561097c57600080fd5b5061041f61098b366004614428565b612593565b34801561099c57600080fd5b5061041f6109ab3660046147b2565b612672565b3480156109bc57600080fd5b5061045260155481565b3480156109d257600080fd5b506103ba6109e1366004614428565b612707565b3480156109f257600080fd5b50610452610a01366004614428565b612827565b348015610a1257600080fd5b506104527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a4657600080fd5b5061041f610a55366004614502565b61283e565b348015610a6657600080fd5b5061045260115481565b348015610a7c57600080fd5b506103ba612866565b348015610a9157600080fd5b50610390610aa0366004614892565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610ada57600080fd5b50610aee610ae9366004614428565b612875565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c08301526001600160a01b031660e08201526101000161039c565b6000610b3d826129b9565b80610b5857506001600160e01b0319821663152a902d60e11b145b92915050565b606060028054610b6d906148c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610b99906148c0565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b0316610c6e5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610c9582612136565b9050806001600160a01b0316836001600160a01b03161415610d035760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c65565b806001600160a01b0316610d156129de565b6001600160a01b03161480610d315750610d3181610aa06129de565b610da35760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610c65565b610dad83836129e8565b505050565b610dbf60006108b06129de565b610dff5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610e865760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610c65565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491015b60405180910390a15050565b610ef560006108b06129de565b610f355760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b610f6460006108b06129de565b610fa45760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b612710811115610fe55760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b6044820152606401610c65565b60158190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b61103261102c6129de565b82612a56565b6110a45760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610c65565b610dad838383612b4d565b60175460405163f2aab4b360e01b815230600482015260009182916101009091046001600160a01b03169063f2aab4b39060240160206040518083038186803b1580156110fb57600080fd5b505afa15801561110f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113391906148fb565b60155490925061271090611147908561492e565b6111519190614963565b90509250929050565b60008281526020819052604090206001015461117d816111786129de565b612d0c565b610dad8383612d8a565b6002600d5414156111da5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c65565b6002600d5560006111e9612039565b905060006012828154811061120057611200614977565b600091825260209182902060408051610100810182526008909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c08201526007909101546001600160a01b031660e08201529050846112c25760405162461bcd60e51b815260206004820152600d60248201527f6e656564207175616e74697479000000000000000000000000000000000000006044820152606401610c65565b600f54856011546112d3919061498d565b11156113215760405162461bcd60e51b815260206004820152601760248201527f657863656564206d617820737570706c79206c696d69740000000000000000006044820152606401610c65565b60105485601154611332919061498d565b11156113805760405162461bcd60e51b815260206004820152601b60248201527f63616e6e6f7420636c61696d20756e6d696e74656420746f6b656e00000000006044820152606401610c65565b80606001518511156113d45760405162461bcd60e51b815260206004820152600f60248201527f657863656564207478206c696d697400000000000000000000000000000000006044820152606401610c65565b80602001518582604001516113e9919061498d565b11156114375760405162461bcd60e51b815260206004820152601660248201527f657863656564206d6178206d696e7420737570706c79000000000000000000006044820152606401610c65565b600060145483611447919061498d565b90506000601360006114576129de565b6001600160a01b0316815260208082019290925260409081016000908120858252909252902054905080158061148d5750804210155b6114d95760405162461bcd60e51b815260206004820152600f60248201527f63616e6e6f74206d696e742079657400000000000000000000000000000000006044820152606401610c65565b60a0830151156115bc5760006114ed6129de565b604051602001611515919060609190911b6bffffffffffffffffffffffff1916815260140190565b60405160208183030381529060405280519060200120905061156e87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060a086015183612dac565b6115ba5760405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642070726f6f66730000000000000000000000000000000000006044820152606401610c65565b505b86601285815481106115d0576115d0614977565b906000526020600020906008020160020160008282546115f0919061498d565b909155505060808301514281019081101561160a57506000195b80601360006116176129de565b6001600160a01b031681526020808201929092526040908101600090812087825290925290205560c0840151156116ae5760008460c001518961165a919061492e565b905060006127106fffffffffffffffffffffffffffffffff1660165483611681919061492e565b61168b9190614963565b9050600061169982846149a5565b90506116aa8760e001518284612dc2565b5050505b60115460005b898110156116fa576116cf6116c76129de565b6011546130b4565b6001601160008282546116e2919061498d565b909155508190506116f2816149bc565b9150506116b4565b506117036129de565b60408051838152602081018c90529081018890526001600160a01b0391909116907f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e9060600160405180910390a250506001600d5550505050505050565b600061176c836121c1565b82106117e05760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610c65565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b61181660006108b06129de565b6118565760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b611862601a8383614280565b507fe6e4cd5c2dc7d2c20519b41832cd550fd3ea1186bf299d108179bf71fb8e00e58282604051610edc9291906149d7565b61189c6129de565b6001600160a01b0316816001600160a01b0316146119225760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610c65565b61192c82826130ce565b5050565b61193d60006108b06129de565b61197d5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b600f8190556040518181527ff8cbdbee6d402ad22cddbc250098e39cd0d24f0fad122f64794577167c605df990602001611016565b6119bf60006108b06129de565b6119ff5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b60125415611a2e5760125460148054600090611a1c90849061498d565b90915550611a2e905060126000614304565b6000805b82811015611d7b578115611ad157838382818110611a5257611a52614977565b90506101000201600001358210611ad15760405162461bcd60e51b815260206004820152602960248201527f737461727454696d657374616d70206d75737420626520696e20617363656e6460448201527f696e67206f7264657200000000000000000000000000000000000000000000006064820152608401610c65565b6000848483818110611ae557611ae5614977565b905061010002016020013511611b3d5760405162461bcd60e51b815260206004820152601b60248201527f6d6178206d696e7420737570706c792063616e6e6f74206265203000000000006044820152606401610c65565b6000848483818110611b5157611b51614977565b905061010002016060013511611ba95760405162461bcd60e51b815260206004820152601a60248201527f7175616e74697479206c696d69742063616e6e6f7420626520300000000000006044820152606401610c65565b6012604051806101000160405280868685818110611bc957611bc9614977565b611bdd92610100909102013590504261498d565b8152602001868685818110611bf457611bf4614977565b9050610100020160200135815260200160008152602001868685818110611c1d57611c1d614977565b90506101000201606001358152602001868685818110611c3f57611c3f614977565b90506101000201608001358152602001868685818110611c6157611c61614977565b9050610100020160a001358152602001868685818110611c8357611c83614977565b9050610100020160c001358152602001868685818110611ca557611ca5614977565b9050610100020160e0016020810190611cbe9190614482565b6001600160a01b0390811690915282546001808201855560009485526020948590208451600890930201918255938301519381019390935560408201516002840155606082015160038401556080820151600484015560a0820151600584015560c0820151600684015560e090910151600790920180546001600160a01b03191692909116919091179055838382818110611d5b57611d5b614977565b905061010002016000013591508080611d73906149bc565b915050611a32565b507f0d81786d9719fff6cc2cf3c64025550dbba243da255d6c5fa0879e8ad6af83cc6012604051611dac9190614a06565b60405180910390a1505050565b610dad83838360405180602001604052806000815250612672565b611ddf61102c6129de565b611e515760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f766564000000000000000000000000000000006064820152608401610c65565b611e5a816130f0565b50565b611e897f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108b06129de565b611ec35760405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606401610c65565b600f54601054611ed490839061498d565b1115611f225760405162461bcd60e51b815260206004820152601560248201527f657863656564206d6178546f74616c537570706c7900000000000000000000006044820152606401610c65565b60105460005b82811015611f8d57838382818110611f4257611f42614977565b9050602002810190611f549190614aa4565b6000848152601b60205260409020611f6d929091614280565b50611f7960018361498d565b915080611f85816149bc565b915050611f28565b506010555050565b6000611fa0600a5490565b82106120145760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610c65565b600a828154811061202757612027614977565b90600052602060002001549050919050565b60125460009061208b5760405162461bcd60e51b815260206004820152601860248201527f6e6f207075626c6963206d696e7420636f6e646974696f6e00000000000000006044820152606401610c65565b6012545b80156120ed5760126120a26001836149a5565b815481106120b2576120b2614977565b90600052602060002090600802016000015442106120db576120d56001826149a5565b91505090565b806120e581614aeb565b91505061208f565b5060405162461bcd60e51b815260206004820152601860248201527f6e6f20616374697665206d696e7420636f6e646974696f6e00000000000000006044820152606401610c65565b6000818152600460205260408120546001600160a01b031680610b585760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610c65565b60006001600160a01b03821661223f5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610c65565b506001600160a01b031660009081526005602052604090205490565b61226860006108b06129de565b6122a85760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6127108111156122e95760405162461bcd60e51b815260206004820152600c60248201526b0627073203c3d2031303030360a41b6044820152606401610c65565b60168190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c7690602001611016565b61232b60006108b06129de565b61236b5760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b6017805460ff19168215159081179091556040519081527ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90602001611016565b600e546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166123f35750600090565b600e546001600160a01b03165b905090565b600082815260016020526040812061241d9083613197565b9392505050565b61243160006108b06129de565b6124715760405162461bcd60e51b815260206004820152601160248201527037b7363c9036b7b23ab6329030b236b4b760791b6044820152606401610c65565b610dad60198383614280565b606060038054610b6d906148c0565b61192c6124976129de565b83836131a3565b60608167ffffffffffffffff8111156124b9576124b961479c565b6040519080825280602002602001820160405280156124ec57816020015b60608152602001906001900390816124d75790505b50905060005b8281101561258c5761255c3085858481811061251057612510614977565b90506020028101906125229190614aa4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061327292505050565b82828151811061256e5761256e614977565b60200260200101819052508080612584906149bc565b9150506124f2565b5092915050565b6125bf7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108b06129de565b6125f95760405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606401610c65565b600f548160105461260a919061498d565b11156126585760405162461bcd60e51b815260206004820152601560248201527f657863656564206d6178546f74616c537570706c7900000000000000000000006044820152606401610c65565b806010600082825461266a919061498d565b909155505050565b61268361267d6129de565b83612a56565b6126f55760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610c65565b61270184848484613297565b50505050565b60606000612713613315565b6000848152601b6020526040812080549293509091612731906148c0565b905011156127d8576000838152601b602052604090208054612752906148c0565b80601f016020809104026020016040519081016040528092919081815260200182805461277e906148c0565b80156127cb5780601f106127a0576101008083540402835291602001916127cb565b820191906000526020600020905b8154815290600101906020018083116127ae57829003601f168201915b5050505050915050919050565b80511561281157806127e984613324565b6040516020016127fa929190614b02565b604051602081830303815290604052915050919050565b5050604080516020810190915260008152919050565b6000818152600160205260408120610b5890613422565b60008281526020819052604090206001015461285c816111786129de565b610dad83836130ce565b606060198054610b6d906148c0565b6012818154811061288557600080fd5b600091825260209091206008909102018054600182015460028301546003840154600485015460058601546006870154600790970154959750939592949193909290916001600160a01b031688565b600c5460009061010090046001600160a01b03163314156128fc575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661192c576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556129606129de565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061241d836001600160a01b03841661342c565b60006001600160e01b0319821663780e9d6360e01b1480610b585750610b588261347b565b60006124006128d4565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612a1d82612136565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316612acf5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610c65565b6000612ada83612136565b9050806001600160a01b0316846001600160a01b03161480612b155750836001600160a01b0316612b0a84610bf0565b6001600160a01b0316145b80612b4557506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316612b6082612136565b6001600160a01b031614612bdc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610c65565b6001600160a01b038216612c3e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b612c498383836134bb565b612c546000826129e8565b6001600160a01b0383166000908152600560205260408120805460019290612c7d9084906149a5565b90915550506001600160a01b0382166000908152600560205260408120805460019290612cab90849061498d565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661192c57612d48816001600160a01b031660146135ce565b612d538360206135ce565b604051602001612d64929190614b31565b60408051601f198184030181529082905262461bcd60e51b8252610c6591600401614415565b612d948282612905565b6000828152600160205260409020610dad90826129a4565b600082612db98584613777565b14949350505050565b60185460175460405163f2aab4b360e01b81523060048201526001600160a01b03928316926000926101009004169063f2aab4b39060240160206040518083038186803b158015612e1257600080fd5b505afa158015612e26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4a91906148fb565b90506001600160a01b038516612ed157612e64838561498d565b3414612eb25760405162461bcd60e51b815260206004820152600f60248201527f76616c756520213d20616d6f756e7400000000000000000000000000000000006044820152606401610c65565b612ebc8285613823565b8215612ecc57612ecc8184613823565b6130ad565b846001600160a01b03166323b872dd612ee86129de565b6040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908516602482015260448101879052606401602060405180830381600087803b158015612f3857600080fd5b505af1158015612f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f709190614bb2565b612fbc5760405162461bcd60e51b815260206004820152601a60248201527f6661696c656420746f207472616e73666572207061796d656e740000000000006044820152606401610c65565b82156130ad57846001600160a01b03166323b872dd612fd96129de565b6040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908416602482015260448101869052606401602060405180830381600087803b15801561302957600080fd5b505af115801561303d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130619190614bb2565b6130ad5760405162461bcd60e51b815260206004820152601660248201527f6661696c656420746f207472616e7366657220666565000000000000000000006044820152606401610c65565b5050505050565b61192c82826040518060200160405280600081525061393c565b6130d882826139ba565b6000828152600160205260409020610dad9082613a57565b60006130fb82612136565b9050613109816000846134bb565b6131146000836129e8565b6001600160a01b038116600090815260056020526040812080546001929061313d9084906149a5565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600061241d8383613a6c565b816001600160a01b0316836001600160a01b031614156132055760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c65565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606061241d8383604051806060016040528060278152602001614c6560279139613a96565b6132a2848484612b4d565b6132ae84848484613b81565b6127015760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b6060601a8054610b6d906148c0565b6060816133485750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613372578061335c816149bc565b915061336b9050600a83614963565b915061334c565b60008167ffffffffffffffff81111561338d5761338d61479c565b6040519080825280601f01601f1916602001820160405280156133b7576020820181803683370190505b5090505b8415612b45576133cc6001836149a5565b91506133d9600a86614bcf565b6133e490603061498d565b60f81b8183815181106133f9576133f9614977565b60200101906001600160f81b031916908160001a90535061341b600a86614963565b94506133bb565b6000610b58825490565b600081815260018301602052604081205461347357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b58565b506000610b58565b60006001600160e01b031982166380ac58cd60e01b14806134ac57506001600160e01b03198216635b5e139f60e01b145b80610b585750610b5882613ce0565b6134c6838383613d05565b60175460ff1680156134e057506001600160a01b03831615155b80156134f457506001600160a01b03821615155b15610dad576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff168061357657506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b610dad5760405162461bcd60e51b815260206004820152602360248201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526265727360e81b6064820152608401610c65565b606060006135dd83600261492e565b6135e890600261498d565b67ffffffffffffffff8111156136005761360061479c565b6040519080825280601f01601f19166020018201604052801561362a576020820181803683370190505b509050600360fc1b8160008151811061364557613645614977565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061367457613674614977565b60200101906001600160f81b031916908160001a905350600061369884600261492e565b6136a390600161498d565b90505b6001811115613728577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106136e4576136e4614977565b1a60f81b8282815181106136fa576136fa614977565b60200101906001600160f81b031916908160001a90535060049490941c9361372181614aeb565b90506136a6565b50831561241d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c65565b600081815b845181101561381b57600085828151811061379957613799614977565b602002602001015190508083116137db576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250613808565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b5080613813816149bc565b91505061377c565b509392505050565b804710156138735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610c65565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146138c0576040519150601f19603f3d011682016040523d82523d6000602084013e6138c5565b606091505b5050905080610dad5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610c65565b6139468383613d89565b6139536000848484613b81565b610dad5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b6000828152602081815260408083206001600160a01b038516845290915290205460ff161561192c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613a136129de565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061241d836001600160a01b038416613ed7565b6000826000018281548110613a8357613a83614977565b9060005260206000200154905092915050565b6060833b613b0c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610c65565b600080856001600160a01b031685604051613b279190614be3565b600060405180830381855af49150503d8060008114613b62576040519150601f19603f3d011682016040523d82523d6000602084013e613b67565b606091505b5091509150613b77828286613fca565b9695505050505050565b60006001600160a01b0384163b15613cd557836001600160a01b031663150b7a02613baa6129de565b8786866040518563ffffffff1660e01b8152600401613bcc9493929190614bff565b602060405180830381600087803b158015613be657600080fd5b505af1925050508015613c16575060408051601f3d908101601f19168201909252613c1391810190614c31565b60015b613cbb573d808015613c44576040519150601f19603f3d011682016040523d82523d6000602084013e613c49565b606091505b508051613cb35760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610c65565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612b45565b506001949350505050565b60006001600160e01b03198216635a05180f60e01b1480610b585750610b5882614003565b613d10838383614038565b600c5460ff1615610dad5760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c65207061757365640000000000000000000000000000000000000000006064820152608401610c65565b6001600160a01b038216613ddf5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c65565b6000818152600460205260409020546001600160a01b031615613e445760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c65565b613e50600083836134bb565b6001600160a01b0382166000908152600560205260408120805460019290613e7990849061498d565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120548015613fc0576000613efb6001836149a5565b8554909150600090613f0f906001906149a5565b9050818114613f74576000866000018281548110613f2f57613f2f614977565b9060005260206000200154905080876000018481548110613f5257613f52614977565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613f8557613f85614c4e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b58565b6000915050610b58565b60608315613fd957508161241d565b825115613fe95782518084602001fd5b8160405162461bcd60e51b8152600401610c659190614415565b60006001600160e01b03198216637965db0b60e01b1480610b5857506301ffc9a760e01b6001600160e01b0319831614610b58565b6001600160a01b0383166140935761408e81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b6140b6565b816001600160a01b0316836001600160a01b0316146140b6576140b683826140f0565b6001600160a01b0382166140cd57610dad8161418d565b826001600160a01b0316826001600160a01b031614610dad57610dad828261423c565b600060016140fd846121c1565b61410791906149a5565b60008381526009602052604090205490915080821461415a576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a5460009061419f906001906149a5565b6000838152600b6020526040812054600a80549394509092849081106141c7576141c7614977565b9060005260206000200154905080600a83815481106141e8576141e8614977565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a80548061422057614220614c4e565b6001900381819060005260206000200160009055905550505050565b6000614247836121c1565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b82805461428c906148c0565b90600052602060002090601f0160209004810192826142ae57600085556142f4565b82601f106142c75782800160ff198235161785556142f4565b828001600101855582156142f4579182015b828111156142f45782358255916020019190600101906142d9565b50614300929150614325565b5090565b5080546000825560080290600052602060002090810190611e5a919061433a565b5b808211156143005760008155600101614326565b5b80821115614300576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201556007810180546001600160a01b031916905560080161433b565b6001600160e01b031981168114611e5a57600080fd5b6000602082840312156143b257600080fd5b813561241d8161438a565b60005b838110156143d85781810151838201526020016143c0565b838111156127015750506000910152565b600081518084526144018160208601602086016143bd565b601f01601f19169290920160200192915050565b60208152600061241d60208301846143e9565b60006020828403121561443a57600080fd5b5035919050565b6001600160a01b0381168114611e5a57600080fd5b6000806040838503121561446957600080fd5b823561447481614441565b946020939093013593505050565b60006020828403121561449457600080fd5b813561241d81614441565b6000806000606084860312156144b457600080fd5b83356144bf81614441565b925060208401356144cf81614441565b929592945050506040919091013590565b600080604083850312156144f357600080fd5b50508035926020909101359150565b6000806040838503121561451557600080fd5b82359150602083013561452781614441565b809150509250929050565b60008083601f84011261454457600080fd5b50813567ffffffffffffffff81111561455c57600080fd5b6020830191508360208260051b850101111561457757600080fd5b9250929050565b60008060006040848603121561459357600080fd5b83359250602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701614532565b9497909650939450505050565b600080602083850312156145dd57600080fd5b823567ffffffffffffffff808211156145f557600080fd5b818501915085601f83011261460957600080fd5b81358181111561461857600080fd5b86602082850101111561462a57600080fd5b60209290920196919550909350505050565b6000806020838503121561464f57600080fd5b823567ffffffffffffffff8082111561466757600080fd5b818501915085601f83011261467b57600080fd5b81358181111561468a57600080fd5b8660208260081b850101111561462a57600080fd5b600080602083850312156146b257600080fd5b823567ffffffffffffffff8111156146c957600080fd5b6146d585828601614532565b90969095509350505050565b8015158114611e5a57600080fd5b60006020828403121561470157600080fd5b813561241d816146e1565b6000806040838503121561471f57600080fd5b823561472a81614441565b91506020830135614527816146e1565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561478f57603f1988860301845261477d8583516143e9565b94509285019290850190600101614761565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156147c857600080fd5b84356147d381614441565b935060208501356147e381614441565b925060408501359150606085013567ffffffffffffffff8082111561480757600080fd5b818701915087601f83011261481b57600080fd5b81358181111561482d5761482d61479c565b604051601f8201601f19908116603f011681019083821181831017156148555761485561479c565b816040528281528a602084870101111561486e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156148a557600080fd5b82356148b081614441565b9150602083013561452781614441565b600181811c908216806148d457607f821691505b602082108114156148f557634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561490d57600080fd5b815161241d81614441565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561494857614948614918565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826149725761497261494d565b500490565b634e487b7160e01b600052603260045260246000fd5b600082198211156149a0576149a0614918565b500190565b6000828210156149b7576149b7614918565b500390565b60006000198214156149d0576149d0614918565b5060010190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020808301818452808554808352604092508286019150866000528360002060005b82811015614a975781548452600180830154878601526002830154868601526003830154606086015260048301546080860152600583015460a0860152600683015460c086015260078301546001600160a01b031660e08601526101009094019360089092019101614a2a565b5091979650505050505050565b6000808335601e19843603018112614abb57600080fd5b83018035915067ffffffffffffffff821115614ad657600080fd5b60200191503681900382131561457757600080fd5b600081614afa57614afa614918565b506000190190565b60008351614b148184602088016143bd565b835190830190614b288183602088016143bd565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b698160178501602088016143bd565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614ba68160288401602088016143bd565b01602801949350505050565b600060208284031215614bc457600080fd5b815161241d816146e1565b600082614bde57614bde61494d565b500690565b60008251614bf58184602087016143bd565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613b7760808301846143e9565b600060208284031215614c4357600080fd5b815161241d8161438a565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$g = function isSuperArgs(xs) {
return xs.length > 1;
};
var LazyNFT__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(LazyNFT__factory, _ContractFactory);
function LazyNFT__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$g(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$_, _bytecode$g, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = LazyNFT__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _contractUri, _baseTokenUri, _maxSupply, _royaltyBps, _feeBps, _saleRecipient, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
LazyNFT__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$_);
};
LazyNFT__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$_, signerOrProvider);
};
return LazyNFT__factory;
}(ContractFactory);
LazyNFT__factory.bytecode = _bytecode$g;
LazyNFT__factory.abi = _abi$_;
var _abi$$ = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint128",
name: "_marketFeeBps",
type: "uint128"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "seller",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
indexed: false,
internalType: "struct Market.Listing",
name: "listing",
type: "tuple"
}],
name: "ListingUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint128",
name: "newFee",
type: "uint128"
}],
name: "MarketFeeUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "seller",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
indexed: false,
internalType: "struct Market.Listing",
name: "listing",
type: "tuple"
}],
name: "NewListing",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "seller",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "buyer",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
indexed: false,
internalType: "struct Market.Listing",
name: "listing",
type: "tuple"
}],
name: "NewSale",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "RestrictedListerRoleUpdated",
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: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "LISTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "_contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}],
name: "addToListing",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "address",
name: "",
type: "address"
}],
name: "boughtFromListing",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}],
name: "buy",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getAllListings",
outputs: [{
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
internalType: "struct Market.Listing[]",
name: "allListings",
type: "tuple[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}],
name: "getListing",
outputs: [{
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
internalType: "struct Market.Listing",
name: "listing",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_assetContract",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "getListingsByAsset",
outputs: [{
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
internalType: "struct Market.Listing[]",
name: "tokenListings",
type: "tuple[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_assetContract",
type: "address"
}],
name: "getListingsByAssetContract",
outputs: [{
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
internalType: "struct Market.Listing[]",
name: "tokenListings",
type: "tuple[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_seller",
type: "address"
}],
name: "getListingsBySeller",
outputs: [{
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
internalType: "struct Market.Listing[]",
name: "sellerListings",
type: "tuple[]"
}],
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: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_assetContract",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "_tokensPerBuyer",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilStart",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilEnd",
type: "uint256"
}],
name: "list",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "listings",
outputs: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "seller",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "saleStart",
type: "uint256"
}, {
internalType: "uint256",
name: "saleEnd",
type: "uint256"
}, {
internalType: "uint256",
name: "tokensPerBuyer",
type: "uint256"
}, {
internalType: "enum Market.TokenType",
name: "tokenType",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "marketFeeBps",
outputs: [{
internalType: "uint128",
name: "",
type: "uint128"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "restrictedListerRoleOnly",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
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: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint128",
name: "feeBps",
type: "uint128"
}],
name: "setMarketFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "setRestrictedListerRoleOnly",
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: "totalListings",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}],
name: "unlist",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_tokensPerBuyer",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilStart",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilEnd",
type: "uint256"
}],
name: "updateListingParams",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$h = "0x60806040523480156200001157600080fd5b506040516200518738038062005187833981016040819052620000349162000516565b6002805460ff191690556001600355600480546001600160a01b0319166001600160a01b03851617905581516200007390600790602085019062000424565b50600580546001600160a01b0319166001600160a01b038616179055620000a560006200009f62000118565b62000134565b620000d47ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c6200009f62000118565b620001037f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200009f62000118565b6200010e8162000144565b5050505062000670565b60006200012f6200027f60201b620029fc1760201c565b905090565b620001408282620002b8565b5050565b6200015a60006200015462000118565b620002fb565b620001c05760405162461bcd60e51b815260206004820152602b60248201527f6f6e6c792061206d6f64756c652061646d696e2063616e2063616c6c2074686960448201526a3990333ab731ba34b7b71760a91b60648201526084015b60405180910390fd5b6127106001600160801b03821611156200022b5760405162461bcd60e51b815260206004820152602560248201527f6270732070726f7669646564206d757374206265206c657373207468616e20316044820152640302c3030360dc1b6064820152608401620001b7565b600880546001600160801b0319166001600160801b0383169081179091556040519081527fd50e64e6eb05cd7ceafe1a28b1a7ad949edb90451106259c7117252d605178ef9060200160405180910390a150565b6004546000906001600160a01b0316331415620002a3575060131936013560601c90565b6200012f6200032660201b62002a291760201c565b620002cf82826200032a60201b62002a2d1760201c565b6000828152600160209081526040909120620002f691839062002acc620003b4821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b620003368282620002fb565b62000140576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200037062000118565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003cb836001600160a01b038416620003d2565b9392505050565b60008181526001830160205260408120546200041b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000320565b50600062000320565b828054620004329062000633565b90600052602060002090601f016020900481019282620004565760008555620004a1565b82601f106200047157805160ff1916838001178555620004a1565b82800160010185558215620004a1579182015b82811115620004a157825182559160200191906001019062000484565b50620004af929150620004b3565b5090565b5b80821115620004af5760008155600101620004b4565b6001600160a01b0381168114620004e057600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b80516001600160801b03811681146200051157600080fd5b919050565b600080600080608085870312156200052d57600080fd5b84516200053a81620004ca565b809450506020808601516200054f81620004ca565b60408701519094506001600160401b03808211156200056d57600080fd5b818801915088601f8301126200058257600080fd5b815181811115620005975762000597620004e3565b604051601f8201601f19908116603f01168101908382118183101715620005c257620005c2620004e3565b816040528281528b86848701011115620005db57600080fd5b600093505b82841015620005ff5784840186015181850187015292850192620005e0565b82841115620006115760008684830101525b8097505050505050506200062860608601620004f9565b905092959194509250565b600181811c908216806200064857607f821691505b602082108114156200066a57634e487b7160e01b600052602260045260246000fd5b50919050565b614b0780620006806000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80639010d07c11610160578063c78b616c116100d8578063de74e57b1161008c578063e63ab1e911610071578063e63ab1e91461066a578063e8a3d48514610691578063f23a6e611461069957600080fd5b8063de74e57b146105b3578063deb26b941461064357600080fd5b8063d547741f116100bd578063d547741f1461057a578063d6febde81461058d578063d8cba251146105a057600080fd5b8063c78b616c1461055e578063ca15c8731461056757600080fd5b8063a217fddf1161012f578063ae73ccec11610114578063ae73ccec14610522578063bc197c811461052a578063c0e727401461054957600080fd5b8063a217fddf146104fa578063ac9650d81461050257600080fd5b80639010d07c1461047257806391d148541461049d578063938e3d7b146104d45780639b782ff2146104e757600080fd5b8063354c7ab6116101f35780634fd69f3c116101c2578063583e12b6116101a7578063583e12b6146104405780635c975abb1461045357806361096ec61461045e57600080fd5b80634fd69f3c1461040b578063572b6c051461041e57600080fd5b8063354c7ab6146103a757806336568abe146103ba5780633f5c3e87146103cd5780634edeaa81146103f857600080fd5b80631d0cd75e1161024a578063248a9ca31161022f578063248a9ca31461035e5780632f2ff15d14610381578063318510121461039457600080fd5b80631d0cd75e1461030557806320c7852c1461032557600080fd5b806301ffc9a71461027c57806309679b39146102a4578063107a274a146102b9578063150b7a02146102d9575b600080fd5b61028f61028a366004613fd4565b6106b8565b60405190151581526020015b60405180910390f35b6102b76102b2366004613ffe565b6106ef565b005b6102cc6102c7366004614027565b610840565b60405161029b9190614126565b6102ec6102e7366004614196565b610911565b6040516001600160e01b0319909116815260200161029b565b610318610313366004614209565b610923565b60405161029b9190614235565b610350610333366004614284565b600a60209081526000928352604080842090915290825290205481565b60405190815260200161029b565b61035061036c366004614027565b60009081526020819052604090206001015490565b6102b761038f366004614284565b610b44565b6102b76103a23660046142b4565b610b76565b6102b76103b5366004614315565b610f0e565b6102b76103c8366004614284565b610fd5565b6008546103e0906001600160801b031681565b6040516001600160801b03909116815260200161029b565b610318610406366004614332565b611071565b6102b761041936600461434f565b611259565b61028f61042c366004614332565b6004546001600160a01b0391821691161490565b6102b761044e36600461434f565b61156e565b60025460ff1661028f565b60085461028f90600160801b900460ff1681565b61048561048036600461434f565b611a85565b6040516001600160a01b03909116815260200161029b565b61028f6104ab366004614284565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6102b76104e2366004614371565b611aa4565b6102b76104f53660046143b3565b611b1d565b610350600081565b610515610510366004614421565b611f22565b60405161029b91906144ee565b610318612017565b6102ec610538366004614687565b63bc197c8160e01b95945050505050565b610551612175565b60405161029b9190614735565b61035060065481565b610350610575366004614027565b612203565b6102b7610588366004614284565b61221a565b6102b761059b36600461434f565b612242565b6103186105ae366004614332565b61278b565b61062c6105c1366004614027565b600960208190526000918252604090912080546001820154600283015460038401546004850154600586015460068701546007880154600889015499890154600a9099015497996001600160a01b039788169996881698959794969490931694919390929160ff168b565b60405161029b9b9a99989796959493929190614748565b6103507ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c81565b6103507f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61055161296a565b6102ec6106a73660046147b9565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806106e957506001600160e01b03198216630a85bd0160e11b145b92915050565b6106fc60006104ab612ae1565b6107615760405162461bcd60e51b815260206004820152602b60248201527f6f6e6c792061206d6f64756c652061646d696e2063616e2063616c6c2074686960448201526a3990333ab731ba34b7b71760a91b60648201526084015b60405180910390fd5b6127106001600160801b03821611156107e25760405162461bcd60e51b815260206004820152602560248201527f6270732070726f7669646564206d757374206265206c657373207468616e203160448201527f302c3030300000000000000000000000000000000000000000000000000000006064820152608401610758565b600880546fffffffffffffffffffffffffffffffff19166001600160801b0383169081179091556040519081527fd50e64e6eb05cd7ceafe1a28b1a7ad949edb90451106259c7117252d605178ef906020015b60405180910390a150565b610848613eb6565b600082815260096020818152604092839020835161016081018552815481526001808301546001600160a01b039081169483019490945260028301548416958201959095526003820154606082015260048201546080820152600582015490921660a0830152600681015460c0830152600781015460e0830152600881015461010083015291820154610120820152600a820154909261014084019160ff16908111156108f7576108f7614040565b600181111561090857610908614040565b90525092915050565b630a85bd0160e11b5b95945050505050565b6006546060906000805b82811015610996576000818152600960205260409020600201546001600160a01b038781169116148015610971575060008181526009602052604090206003015485145b1561098457610981600183614838565b91505b61098f600182614838565b905061092d565b508067ffffffffffffffff8111156109b0576109b0614550565b6040519080825280602002602001820160405280156109e957816020015b6109d6613eb6565b8152602001906001900390816109ce5790505b5092506000805b83811015610b3a576000818152600960205260409020600201546001600160a01b038881169116148015610a34575060008181526009602052604090206003015486145b15610b2857600081815260096020818152604092839020835161016081018552815481526001808301546001600160a01b039081169483019490945260028301548416958201959095526003820154606082015260048201546080820152600582015490921660a0830152600681015460c0830152600781015460e0830152600881015461010083015291820154610120820152600a820154909261014084019160ff1690811115610ae857610ae8614040565b6001811115610af957610af9614040565b81525050858381518110610b0f57610b0f614850565b6020908102919091010152610b25600183614838565b91505b610b33600182614838565b90506109f0565b5050505092915050565b600082815260208190526040902060010154610b6781610b62612ae1565b612aeb565b610b718383612b69565b505050565b60025460ff1615610bbc5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610758565b610bc4612ae1565b60008781526009602052604090206001015487906001600160a01b03838116911614610c4a5760405162461bcd60e51b815260206004820152602f60248201527f4d61726b65743a204f6e6c79207468652073656c6c65722063616e2063616c6c60448201526e103a3434b990333ab731ba34b7b71760891b6064820152608401610758565b6000888152600960208181526040808420815161016081018352815481526001808301546001600160a01b039081169583019590955260028301548516938201939093526003820154606082015260048201546080820152600582015490931660a0840152600681015460c0840152600781015460e0840152600881015461010084015292830154610120830152600a83015491929161014084019160ff90911690811115610cfb57610cfb614040565b6001811115610d0c57610d0c614040565b8152505090508060800151861115610d8c5760405162461bcd60e51b815260206004820152603760248201527f4d61726b65743a2063616e6e6f74206c657420627579657220627579206d6f7260448201527f65207468616e206c6973746564207175616e746974792e0000000000000000006064820152608401610758565b60c081018890526001600160a01b03871660a08201528515610dae5785610db4565b80608001515b610120820152610dc48542614838565b60e08201528315610dde57610dd98442614838565b610de2565b6000195b610100820190815260008a8152600960208181526040928390208551815590850151600180830180546001600160a01b03199081166001600160a01b0394851617909155948701516002840180548716918416919091179055606087015160038401556080870151600484015560a087015160058401805490961692169190911790935560c0850151600682015560e085015160078201559251600884015561012084015190830155610140830151600a8301805485949360ff19909116908381811115610eb257610eb2614040565b021790555090505088610ec3612ae1565b6001600160a01b03167fb4c8fd604ad229ddf17ffe34f0851a2abf5113b048f8235b12edbabcc6dd919383604051610efb9190614126565b60405180910390a3505050505050505050565b610f1b60006104ab612ae1565b610f7b5760405162461bcd60e51b815260206004820152602b60248201527f6f6e6c792061206d6f64756c652061646d696e2063616e2063616c6c2074686960448201526a3990333ab731ba34b7b71760a91b6064820152608401610758565b60088054821515600160801b0270ff00000000000000000000000000000000199091161790556040517f56668abce4c06e28f52176150c07856e31ee073b9b62df62a5afbf1a22aec24c9061083590831515815260200190565b610fdd612ae1565b6001600160a01b0316816001600160a01b0316146110635760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610758565b61106d8282612b8b565b5050565b6006546060906000805b828110156110c8576000818152600960205260409020600201546001600160a01b03868116911614156110b6576110b3600183614838565b91505b6110c1600182614838565b905061107b565b508067ffffffffffffffff8111156110e2576110e2614550565b60405190808252806020026020018201604052801561111b57816020015b611108613eb6565b8152602001906001900390816111005790505b5092506000805b83811015611250576000818152600960205260409020600201546001600160a01b038781169116141561123e57600081815260096020818152604092839020835161016081018552815481526001808301546001600160a01b039081169483019490945260028301548416958201959095526003820154606082015260048201546080820152600582015490921660a0830152600681015460c0830152600781015460e0830152600881015461010083015291820154610120820152600a820154909261014084019160ff16908111156111fe576111fe614040565b600181111561120f5761120f614040565b8152505085838151811061122557611225614850565b602090810291909101015261123b600183614838565b91505b611249600182614838565b9050611122565b50505050919050565b611261612ae1565b60008381526009602052604090206001015483906001600160a01b038381169116146112e75760405162461bcd60e51b815260206004820152602f60248201527f4d61726b65743a204f6e6c79207468652073656c6c65722063616e2063616c6c60448201526e103a3434b990333ab731ba34b7b71760891b6064820152608401610758565b6000848152600960208181526040808420815161016081018352815481526001808301546001600160a01b039081169583019590955260028301548516938201939093526003820154606082015260048201546080820152600582015490931660a0840152600681015460c0840152600781015460e0840152600881015461010084015292830154610120830152600a83015491929161014084019160ff9091169081111561139857611398614040565b60018111156113a9576113a9614040565b81525050905083816080015110156114295760405162461bcd60e51b815260206004820152603260248201527f4d61726b65743a2063616e6e6f7420756e6c697374206d6f726520746f6b656e60448201527f73207468616e20617265206c69737465642e00000000000000000000000000006064820152608401610758565b838160800181815161143b9190614866565b9052506000858152600960208181526040928390208451815590840151600180830180546001600160a01b03199081166001600160a01b0394851617909155948601516002840180548716918416919091179055606086015160038401556080860151600484015560a086015160058401805490961692169190911790935560c0840151600682015560e08401516007820155610100840151600882015561012084015191810191909155610140830151600a82018054859460ff1990911690838181111561150c5761150c614040565b021790555090505061151e8185612bad565b84611527612ae1565b6001600160a01b03167fb4c8fd604ad229ddf17ffe34f0851a2abf5113b048f8235b12edbabcc6dd91938360405161155f9190614126565b60405180910390a35050505050565b60025460ff16156115b45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610758565b6115bc612ae1565b60008381526009602052604090206001015483906001600160a01b038381169116146116425760405162461bcd60e51b815260206004820152602f60248201527f4d61726b65743a204f6e6c79207468652073656c6c65722063616e2063616c6c60448201526e103a3434b990333ab731ba34b7b71760891b6064820152608401610758565b6000848152600960208181526040808420815161016081018352815481526001808301546001600160a01b039081169583019590955260028301548516938201939093526003820154606082015260048201546080820152600582015490931660a0840152600681015460c0840152600781015460e0840152600881015461010084015292830154610120830152600a83015491929161014084019160ff909116908111156116f3576116f3614040565b600181111561170457611704614040565b815250509050838160800181815161171c9190614838565b9052506000858152600960208181526040928390208451815590840151600180830180546001600160a01b03199081166001600160a01b0394851617909155948601516002840180548716918416919091179055606086015160038401556080860151600484015560a086015160058401805490961692169190911790935560c0840151600682015560e08401516007820155610100840151600882015561012084015191810191909155610140830151600a82018054859460ff199091169083818111156117ed576117ed614040565b021790555050508361184d5760405162461bcd60e51b8152602060048201526024808201527f4d61726b65743a206d75737420616464206174206c65617374206f6e6520746f60448201526335b2b71760e11b6064820152608401610758565b6000816101400151600181111561186657611866614040565b146118d95760405162461bcd60e51b815260206004820152602a60248201527f4d61726b65743a2043616e206f6e6c792061646420746f20455243203131353560448201527f206c697374696e67732e000000000000000000000000000000000000000000006064820152608401610758565b80604001516001600160a01b031663e985e9c56118f4612ae1565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561193957600080fd5b505afa15801561194d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611971919061487d565b6119e35760405162461bcd60e51b815260206004820152603f60248201527f4d61726b65743a206d75737420617070726f766520746865206d61726b65742060448201527f746f207472616e7366657220746f6b656e73206265696e672061646465642e006064820152608401610758565b80604001516001600160a01b031663f242432a6119fe612ae1565b60608401516040516001600160e01b031960e085901b1681526001600160a01b03909216600483015230602483015260448201526064810187905260a06084820152600060a482015260c401600060405180830381600087803b158015611a6457600080fd5b505af1158015611a78573d6000803e3d6000fd5b5050505084611527612ae1565b6000828152600160205260408120611a9d9083612d6c565b9392505050565b611ab160006104ab612ae1565b611b115760405162461bcd60e51b815260206004820152602b60248201527f6f6e6c792061206d6f64756c652061646d696e2063616e2063616c6c2074686960448201526a3990333ab731ba34b7b71760a91b6064820152608401610758565b610b7160078383613f3b565b60025460ff1615611b635760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610758565b600854600160801b900460ff161580611ba35750611ba37ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c6104ab612ae1565b611c155760405162461bcd60e51b815260206004820152602560248201527f6f6e6c792061206c69737465722063616e2063616c6c20746869732066756e6360448201527f74696f6e2e0000000000000000000000000000000000000000000000000000006064820152608401610758565b60008411611c8b5760405162461bcd60e51b815260206004820152602560248201527f4d61726b65743a206d757374206c697374206174206c65617374206f6e65207460448201527f6f6b656e2e0000000000000000000000000000000000000000000000000000006064820152608401610758565b83831115611d015760405162461bcd60e51b815260206004820152603760248201527f4d61726b65743a2063616e6e6f74206c657420627579657220627579206d6f7260448201527f65207468616e206c6973746564207175616e746974792e0000000000000000006064820152608401610758565b60068054906001906000611d158385614838565b9091555060009050611d318a611d29612ae1565b308c8a612d78565b90506000604051806101600160405280848152602001611d4f612ae1565b6001600160a01b031681526020018c6001600160a01b031681526020018b81526020018881526020018a6001600160a01b031681526020018981526020018642611d999190614838565b81526020018515611db357611dae8642614838565b611db7565b6000195b81526020018715611dc85787611dca565b885b8152602001836001811115611de157611de1614040565b90526000848152600960208181526040928390208451815590840151600180830180546001600160a01b03199081166001600160a01b0394851617909155948601516002840180548716918416919091179055606086015160038401556080860151600484015560a086015160058401805490961692169190911790935560c0840151600682015560e08401516007820155610100840151600882015561012084015191810191909155610140830151600a82018054949550859492939192909160ff19909116908381811115611eba57611eba614040565b021790555090505082611ecb612ae1565b6001600160a01b03168c6001600160a01b03167f70c5741a020504dbda58d308c3efe5275326c456d3b00c541925222c40f7c62e84604051611f0d9190614126565b60405180910390a45050505050505050505050565b60608167ffffffffffffffff811115611f3d57611f3d614550565b604051908082528060200260200182016040528015611f7057816020015b6060815260200190600190039081611f5b5790505b50905060005b8281101561201057611fe030858584818110611f9457611f94614850565b9050602002810190611fa6919061489a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132b792505050565b828281518110611ff257611ff2614850565b60200260200101819052508080612008906148e1565b915050611f76565b5092915050565b6006546060908067ffffffffffffffff81111561203657612036614550565b60405190808252806020026020018201604052801561206f57816020015b61205c613eb6565b8152602001906001900390816120545790505b50915060005b8181101561217057600081815260096020818152604092839020835161016081018552815481526001808301546001600160a01b039081169483019490945260028301548416958201959095526003820154606082015260048201546080820152600582015490921660a0830152600681015460c0830152600781015460e0830152600881015461010083015291820154610120820152600a820154909261014084019160ff169081111561212c5761212c614040565b600181111561213d5761213d614040565b8152505083828151811061215357612153614850565b6020908102919091010152612169600182614838565b9050612075565b505090565b60078054612182906148fc565b80601f01602080910402602001604051908101604052809291908181526020018280546121ae906148fc565b80156121fb5780601f106121d0576101008083540402835291602001916121fb565b820191906000526020600020905b8154815290600101906020018083116121de57829003601f168201915b505050505081565b60008181526001602052604081206106e9906132dc565b60008281526020819052604090206001015461223881610b62612ae1565b610b718383612b8b565b600260035414156122955760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610758565b60026003556122a660025460ff1690565b156122e65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610758565b60008281526009602052604090206001015482906001600160a01b031661235b5760405162461bcd60e51b815260206004820152602360248201527f4d61726b65743a20546865206c697374696e6720646f6573206e6f742065786960448201526239ba1760e91b6064820152608401610758565b6000838152600960208181526040808420815161016081018352815481526001808301546001600160a01b039081169583019590955260028301548516938201939093526003820154606082015260048201546080820152600582015490931660a0840152600681015460c0840152600781015460e0840152600881015461010084015292830154610120830152600a83015491929161014084019160ff9091169081111561240c5761240c614040565b600181111561241d5761241d614040565b9052509050600061242c612ae1565b9050600084118015612442575081608001518411155b6124b45760405162461bcd60e51b815260206004820152603160248201527f4d61726b65743a206d7573742062757920616e20617070726f7072696174652060448201527f616d6f756e74206f6620746f6b656e732e0000000000000000000000000000006064820152608401610758565b81610100015142111580156124cd57508160e001514210155b61253f5760405162461bcd60e51b815260206004820152603260248201527f4d61726b65743a207468652073616c652068617320656974686572206e6f742060448201527f73746172746564206f7220636c6f7365642e00000000000000000000000000006064820152608401610758565b6101208201516000868152600a602090815260408083206001600160a01b03861684529091529020546125729086614838565b11156125e65760405162461bcd60e51b815260206004820152603460248201527f4d61726b65743a2043616e6e6f7420627579206d6f72652066726f6d206c697360448201527f74696e67207468616e207065726d69747465642e0000000000000000000000006064820152608401610758565b6000858152600a602090815260408083206001600160a01b038516845290915281208054869290612618908490614838565b9250508190555083826080018181516126319190614866565b9052506000858152600960208181526040928390208551815590850151600180830180546001600160a01b03199081166001600160a01b0394851617909155948701516002840180548716918416919091179055606087015160038401556080870151600484015560a087015160058401805490961692169190911790935560c0850151600682015560e08501516007820155610100850151600882015561012085015191810191909155610140840151600a82018054869460ff1990911690838181111561270257612702614040565b0217905550505060c08201511561271d5761271d82856132e6565b6127278285612bad565b8482602001516001600160a01b031683604001516001600160a01b03167fc848190182320d1cb2ea6d8a80041c6780e56643bc41fe9060bb1f1349902cba84888760405161277793929190614937565b60405180910390a450506001600355505050565b6006546060906000805b828110156127e2576000818152600960205260409020600101546001600160a01b03868116911614156127d0576127cd600183614838565b91505b6127db600182614838565b9050612795565b508067ffffffffffffffff8111156127fc576127fc614550565b60405190808252806020026020018201604052801561283557816020015b612822613eb6565b81526020019060019003908161281a5790505b5092506000805b83811015611250576000818152600960205260409020600101546001600160a01b038781169116141561295857600081815260096020818152604092839020835161016081018552815481526001808301546001600160a01b039081169483019490945260028301548416958201959095526003820154606082015260048201546080820152600582015490921660a0830152600681015460c0830152600781015460e0830152600881015461010083015291820154610120820152600a820154909261014084019160ff169081111561291857612918614040565b600181111561292957612929614040565b8152505085838151811061293f5761293f614850565b6020908102919091010152612955600183614838565b91505b612963600182614838565b905061283c565b606060078054612979906148fc565b80601f01602080910402602001604051908101604052809291908181526020018280546129a5906148fc565b80156129f25780601f106129c7576101008083540402835291602001916129f2565b820191906000526020600020905b8154815290600101906020018083116129d557829003601f168201915b5050505050905090565b6004546000906001600160a01b0316331415612a1f575060131936013560601c90565b503390565b905090565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661106d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055612a88612ae1565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611a9d836001600160a01b0384166139cb565b6000612a246129fc565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661106d57612b27816001600160a01b03166014613a1a565b612b32836020613a1a565b604051602001612b43929190614964565b60408051601f198184030181529082905262461bcd60e51b825261075891600401614735565b612b738282612a2d565b6000828152600160205260409020610b719082612acc565b612b958282613bc3565b6000828152600160205260409020610b719082613c60565b60008261014001516001811115612bc657612bc6614040565b1415612c6e5781604001516001600160a01b031663f242432a30612be8612ae1565b60608601516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064810184905260a06084820152600060a482015260c4015b600060405180830381600087803b158015612c5257600080fd5b505af1158015612c66573d6000803e3d6000fd5b505050505050565b60018261014001516001811115612c8757612c87614040565b141561106d5780600114612d035760405162461bcd60e51b815260206004820152603660248201527f4d61726b65743a2043616e6e6f7420756e6c697374206d6f7265207468616e2060448201527f6f6e65206f6620616e2045524320373231204e46542e000000000000000000006064820152608401610758565b81604001516001600160a01b031663b88d4fde30612d1f612ae1565b60608601516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152608060648201526000608482015260a401612c38565b6000611a9d8383613c75565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526000906001600160a01b038716906301ffc9a79060240160206040518083038186803b158015612dc157600080fd5b505afa158015612dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df9919061487d565b15612f7d5760405163e985e9c560e01b81526001600160a01b038681166004830152858116602483015287169063e985e9c59060440160206040518083038186803b158015612e4757600080fd5b505afa158015612e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7f919061487d565b612ef3576040805162461bcd60e51b81526020600482015260248101919091527f4d61726b65743a206d75737420617070726f766520746865206d61726b65742060448201527f746f207472616e7366657220746f6b656e73206265696e67206c69737465642e6064820152608401610758565b50604051637921219560e11b81526001600160a01b0385811660048301528481166024830152604482018490526064820183905260a06084830152600060a48301819052919087169063f242432a9060c4015b600060405180830381600087803b158015612f6057600080fd5b505af1158015612f74573d6000803e3d6000fd5b5050505061091a565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038716906301ffc9a79060240160206040518083038186803b158015612fc357600080fd5b505afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb919061487d565b1561324957816001146130765760405162461bcd60e51b815260206004820152603160248201527f4d61726b65743a2043616e6e6f74206c697374206d6f7265207468616e20312060448201527f6f6620616e20455243373231204e46542e0000000000000000000000000000006064820152608401610758565b60405163e985e9c560e01b81526001600160a01b038681166004830152858116602483015287169063e985e9c59060440160206040518083038186803b1580156130bf57600080fd5b505afa1580156130d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f7919061487d565b80613185575060405163020604bf60e21b8152600481018490526001600160a01b03808616919088169063081812fc9060240160206040518083038186803b15801561314257600080fd5b505afa158015613156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317a91906149e5565b6001600160a01b0316145b6131f9576040805162461bcd60e51b81526020600482015260248101919091527f4d61726b65743a206d75737420617070726f766520746865206d61726b65742060448201527f746f207472616e7366657220746f6b656e73206265696e67206c69737465642e6064820152608401610758565b50604051635c46a7ef60e11b81526001600160a01b03858116600483015284811660248301526044820184905260806064830152600060848301526001919087169063b88d4fde9060a401612f46565b60405162461bcd60e51b815260206004820152603860248201527f4d61726b65743a20746f6b656e206d75737420696d706c656d656e742065697460448201527f686572204552432031313535206f7220455243203732312e00000000000000006064820152608401610758565b6060611a9d8383604051806060016040528060278152602001614ad460279139613c9f565b60006106e9825490565b6000818360c001516132f89190614a02565b9050808360a001516001600160a01b031663dd62ed3e613316612ae1565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561335b57600080fd5b505afa15801561336f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133939190614a21565b10156134075760405162461bcd60e51b815260206004820152603560248201527f4d61726b65743a206d75737420617070726f7665204d61726b657420746f207460448201527f72616e7366657220707269636520746f207061792e00000000000000000000006064820152608401610758565b60085460009061271090613424906001600160801b031684614a02565b61342e9190614a3a565b90508360a001516001600160a01b03166323b872dd61344b612ae1565b60055460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b15801561348e57600080fd5b505afa1580156134a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c691906149e5565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401602060405180830381600087803b15801561351557600080fd5b505af1158015613529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354d919061487d565b6135bf5760405162461bcd60e51b815260206004820152602860248201527f4d61726b65743a206661696c656420746f207472616e736665722070726f746f60448201527f636f6c206375742e0000000000000000000000000000000000000000000000006064820152608401610758565b60006135cb8284614866565b60408087015190516301ffc9a760e01b815263152a902d60e11b60048201529192506001600160a01b0316906301ffc9a79060240160206040518083038186803b15801561361857600080fd5b505afa15801561362c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613650919061487d565b156138ab5760008086604001516001600160a01b0316632a55205a8860600151876040518363ffffffff1660e01b8152600401613697929190918252602082015260400190565b604080518083038186803b1580156136ae57600080fd5b505afa1580156136c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e69190614a5c565b90925090506001600160a01b038216158015906137035750600081115b156138a857846137138583614838565b11156137875760405162461bcd60e51b815260206004820152602b60248201527f4d61726b65743a20546f74616c206d61726b657420666565732065786365656460448201527f207468652070726963652e0000000000000000000000000000000000000000006064820152608401610758565b6137918184614866565b92508660a001516001600160a01b03166323b872dd6137ae612ae1565b6040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908516602482015260448101849052606401602060405180830381600087803b1580156137fe57600080fd5b505af1158015613812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613836919061487d565b6138a85760405162461bcd60e51b815260206004820152602760248201527f4d61726b65743a206661696c656420746f207472616e7366657220637265617460448201527f6f72206375742e000000000000000000000000000000000000000000000000006064820152608401610758565b50505b8460a001516001600160a01b03166323b872dd6138c6612ae1565b60208801516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401602060405180830381600087803b15801561391a57600080fd5b505af115801561392e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613952919061487d565b6139c45760405162461bcd60e51b815260206004820152602660248201527f4d61726b65743a206661696c656420746f207472616e736665722073656c6c6560448201527f72206375742e00000000000000000000000000000000000000000000000000006064820152608401610758565b5050505050565b6000818152600183016020526040812054613a12575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106e9565b5060006106e9565b60606000613a29836002614a02565b613a34906002614838565b67ffffffffffffffff811115613a4c57613a4c614550565b6040519080825280601f01601f191660200182016040528015613a76576020820181803683370190505b509050600360fc1b81600081518110613a9157613a91614850565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613ac057613ac0614850565b60200101906001600160f81b031916908160001a9053506000613ae4846002614a02565b613aef906001614838565b90505b6001811115613b74577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613b3057613b30614850565b1a60f81b828281518110613b4657613b46614850565b60200101906001600160f81b031916908160001a90535060049490941c93613b6d81614a8a565b9050613af2565b508315611a9d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610758565b6000828152602081815260408083206001600160a01b038516845290915290205460ff161561106d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613c1c612ae1565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611a9d836001600160a01b038416613d8a565b6000826000018281548110613c8c57613c8c614850565b9060005260206000200154905092915050565b6060833b613d155760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610758565b600080856001600160a01b031685604051613d309190614aa1565b600060405180830381855af49150503d8060008114613d6b576040519150601f19603f3d011682016040523d82523d6000602084013e613d70565b606091505b5091509150613d80828286613e7d565b9695505050505050565b60008181526001830160205260408120548015613e73576000613dae600183614866565b8554909150600090613dc290600190614866565b9050818114613e27576000866000018281548110613de257613de2614850565b9060005260206000200154905080876000018481548110613e0557613e05614850565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613e3857613e38614abd565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106e9565b60009150506106e9565b60608315613e8c575081611a9d565b825115613e9c5782518084602001fd5b8160405162461bcd60e51b81526004016107589190614735565b6040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160006001811115613f3657613f36614040565b905290565b828054613f47906148fc565b90600052602060002090601f016020900481019282613f695760008555613faf565b82601f10613f825782800160ff19823516178555613faf565b82800160010185558215613faf579182015b82811115613faf578235825591602001919060010190613f94565b50613fbb929150613fbf565b5090565b5b80821115613fbb5760008155600101613fc0565b600060208284031215613fe657600080fd5b81356001600160e01b031981168114611a9d57600080fd5b60006020828403121561401057600080fd5b81356001600160801b0381168114611a9d57600080fd5b60006020828403121561403957600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6002811061407457634e487b7160e01b600052602160045260246000fd5b9052565b80518252602081015161409660208401826001600160a01b03169052565b5060408101516140b160408401826001600160a01b03169052565b50606081015160608301526080810151608083015260a08101516140e060a08401826001600160a01b03169052565b5060c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152506101408082015161412082850182614056565b50505050565b61016081016106e98284614078565b6001600160a01b038116811461414a57600080fd5b50565b60008083601f84011261415f57600080fd5b50813567ffffffffffffffff81111561417757600080fd5b60208301915083602082850101111561418f57600080fd5b9250929050565b6000806000806000608086880312156141ae57600080fd5b85356141b981614135565b945060208601356141c981614135565b935060408601359250606086013567ffffffffffffffff8111156141ec57600080fd5b6141f88882890161414d565b969995985093965092949392505050565b6000806040838503121561421c57600080fd5b823561422781614135565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561427857614264838551614078565b928401926101609290920191600101614251565b50909695505050505050565b6000806040838503121561429757600080fd5b8235915060208301356142a981614135565b809150509250929050565b60008060008060008060c087890312156142cd57600080fd5b863595506020870135945060408701356142e681614135565b959894975094956060810135955060808101359460a0909101359350915050565b801515811461414a57600080fd5b60006020828403121561432757600080fd5b8135611a9d81614307565b60006020828403121561434457600080fd5b8135611a9d81614135565b6000806040838503121561436257600080fd5b50508035926020909101359150565b6000806020838503121561438457600080fd5b823567ffffffffffffffff81111561439b57600080fd5b6143a78582860161414d565b90969095509350505050565b600080600080600080600080610100898b0312156143d057600080fd5b88356143db81614135565b97506020890135965060408901356143f281614135565b979a96995096976060810135975060808101359660a0820135965060c0820135955060e0909101359350915050565b6000806020838503121561443457600080fd5b823567ffffffffffffffff8082111561444c57600080fd5b818501915085601f83011261446057600080fd5b81358181111561446f57600080fd5b8660208260051b850101111561448457600080fd5b60209290920196919550909350505050565b60005b838110156144b1578181015183820152602001614499565b838111156141205750506000910152565b600081518084526144da816020860160208601614496565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561454357603f198886030184526145318583516144c2565b94509285019290850190600101614515565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561458f5761458f614550565b604052919050565b600082601f8301126145a857600080fd5b8135602067ffffffffffffffff8211156145c4576145c4614550565b8160051b6145d3828201614566565b92835284810182019282810190878511156145ed57600080fd5b83870192505b8483101561460c578235825291830191908301906145f3565b979650505050505050565b600082601f83011261462857600080fd5b813567ffffffffffffffff81111561464257614642614550565b614655601f8201601f1916602001614566565b81815284602083860101111561466a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561469f57600080fd5b85356146aa81614135565b945060208601356146ba81614135565b9350604086013567ffffffffffffffff808211156146d757600080fd5b6146e389838a01614597565b945060608801359150808211156146f957600080fd5b61470589838a01614597565b9350608088013591508082111561471b57600080fd5b5061472888828901614617565b9150509295509295909350565b602081526000611a9d60208301846144c2565b6000610160820190508c82526001600160a01b03808d166020840152808c1660408401528a606084015289608084015280891660a0840152508660c08301528560e083015284610100830152836101208301526147a9610140830184614056565b9c9b505050505050505050505050565b600080600080600060a086880312156147d157600080fd5b85356147dc81614135565b945060208601356147ec81614135565b93506040860135925060608601359150608086013567ffffffffffffffff81111561481657600080fd5b61472888828901614617565b634e487b7160e01b600052601160045260246000fd5b6000821982111561484b5761484b614822565b500190565b634e487b7160e01b600052603260045260246000fd5b60008282101561487857614878614822565b500390565b60006020828403121561488f57600080fd5b8151611a9d81614307565b6000808335601e198436030181126148b157600080fd5b83018035915067ffffffffffffffff8211156148cc57600080fd5b60200191503681900382131561418f57600080fd5b60006000198214156148f5576148f5614822565b5060010190565b600181811c9082168061491057607f821691505b6020821081141561493157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384168152602081018390526101a0810161495c6040830184614078565b949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161499c816017850160208801614496565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516149d9816028840160208801614496565b01602801949350505050565b6000602082840312156149f757600080fd5b8151611a9d81614135565b6000816000190483118215151615614a1c57614a1c614822565b500290565b600060208284031215614a3357600080fd5b5051919050565b600082614a5757634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215614a6f57600080fd5b8251614a7a81614135565b6020939093015192949293505050565b600081614a9957614a99614822565b506000190190565b60008251614ab3818460208701614496565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$h = function isSuperArgs(xs) {
return xs.length > 1;
};
var Market__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Market__factory, _ContractFactory);
function Market__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$h(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$$, _bytecode$h, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Market__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, _marketFeeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, _marketFeeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, _marketFeeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, _marketFeeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Market__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$$);
};
Market__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$$, signerOrProvider);
};
return Market__factory;
}(ContractFactory);
Market__factory.bytecode = _bytecode$h;
Market__factory.abi = _abi$$;
/* Autogenerated file. Do not edit manually. */
var _abi$10 = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "timeBuffer",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "bidBufferBps",
type: "uint256"
}],
name: "AuctionBuffersUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "closer",
type: "address"
}, {
indexed: true,
internalType: "bool",
name: "cancelled",
type: "bool"
}, {
indexed: false,
internalType: "address",
name: "auctionCreator",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "winningBidder",
type: "address"
}],
name: "AuctionClosed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "ListingRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "listingCreator",
type: "address"
}],
name: "ListingUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint64",
name: "newFee",
type: "uint64"
}],
name: "MarketFeeUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "lister",
type: "address"
}, {
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "tokenOwner",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "endTime",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "buyoutPricePerToken",
type: "uint256"
}, {
internalType: "enum IMarketplace.TokenType",
name: "tokenType",
type: "uint8"
}, {
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}],
indexed: false,
internalType: "struct IMarketplace.Listing",
name: "listing",
type: "tuple"
}],
name: "NewListing",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "offeror",
type: "address"
}, {
indexed: true,
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "quantityWanted",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "totalOfferAmount",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "currency",
type: "address"
}],
name: "NewOffer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "lister",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "buyer",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityBought",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "totalPricePaid",
type: "uint256"
}],
name: "NewSale",
type: "event"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "address",
name: "_offeror",
type: "address"
}],
name: "acceptOffer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantity",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_totalPrice",
type: "uint256"
}],
name: "buy",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "address",
name: "_closeFor",
type: "address"
}],
name: "closeAuction",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "secondsUntilEndTime",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityToList",
type: "uint256"
}, {
internalType: "address",
name: "currencyToAccept",
type: "address"
}, {
internalType: "uint256",
name: "reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "buyoutPricePerToken",
type: "uint256"
}, {
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}],
internalType: "struct IMarketplace.ListingParameters",
name: "_params",
type: "tuple"
}],
name: "createListing",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantityWanted",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_pricePerToken",
type: "uint256"
}],
name: "offer",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantityToList",
type: "uint256"
}, {
internalType: "uint256",
name: "_reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "_buyoutPricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "_currencyToAccept",
type: "address"
}, {
internalType: "uint256",
name: "_startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilEndTime",
type: "uint256"
}],
name: "updateListing",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var IMarketplace__factory = /*#__PURE__*/function () {
function IMarketplace__factory() {}
IMarketplace__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$10);
};
IMarketplace__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$10, signerOrProvider);
};
return IMarketplace__factory;
}();
IMarketplace__factory.abi = _abi$10;
var _abi$11 = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint256",
name: "_marketFeeBps",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "timeBuffer",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "bidBufferBps",
type: "uint256"
}],
name: "AuctionBuffersUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "closer",
type: "address"
}, {
indexed: true,
internalType: "bool",
name: "cancelled",
type: "bool"
}, {
indexed: false,
internalType: "address",
name: "auctionCreator",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "winningBidder",
type: "address"
}],
name: "AuctionClosed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "ListingRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "listingCreator",
type: "address"
}],
name: "ListingUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint64",
name: "newFee",
type: "uint64"
}],
name: "MarketFeeUpdate",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "lister",
type: "address"
}, {
components: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "tokenOwner",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "endTime",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "buyoutPricePerToken",
type: "uint256"
}, {
internalType: "enum IMarketplace.TokenType",
name: "tokenType",
type: "uint8"
}, {
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}],
indexed: false,
internalType: "struct IMarketplace.Listing",
name: "listing",
type: "tuple"
}],
name: "NewListing",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "offeror",
type: "address"
}, {
indexed: true,
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "quantityWanted",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "totalOfferAmount",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "currency",
type: "address"
}],
name: "NewOffer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "assetContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "lister",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "buyer",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "quantityBought",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "totalPricePaid",
type: "uint256"
}],
name: "NewSale",
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"
}, {
inputs: [],
name: "ASSET_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "LISTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MAX_BPS",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "NATIVE_TOKEN",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "VERSION",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "address",
name: "offeror",
type: "address"
}],
name: "acceptOffer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "bidBufferBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantityToBuy",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_totalPrice",
type: "uint256"
}],
name: "buy",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "address",
name: "_closeFor",
type: "address"
}],
name: "closeAuction",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "secondsUntilEndTime",
type: "uint256"
}, {
internalType: "uint256",
name: "quantityToList",
type: "uint256"
}, {
internalType: "address",
name: "currencyToAccept",
type: "address"
}, {
internalType: "uint256",
name: "reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "buyoutPricePerToken",
type: "uint256"
}, {
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}],
internalType: "struct IMarketplace.ListingParameters",
name: "_params",
type: "tuple"
}],
name: "createListing",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "listings",
outputs: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "tokenOwner",
type: "address"
}, {
internalType: "address",
name: "assetContract",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "uint256",
name: "startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "endTime",
type: "uint256"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "buyoutPricePerToken",
type: "uint256"
}, {
internalType: "enum IMarketplace.TokenType",
name: "tokenType",
type: "uint8"
}, {
internalType: "enum IMarketplace.ListingType",
name: "listingType",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "marketFeeBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantityWanted",
type: "uint256"
}, {
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "uint256",
name: "_pricePerToken",
type: "uint256"
}],
name: "offer",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "address",
name: "",
type: "address"
}],
name: "offers",
outputs: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "offeror",
type: "address"
}, {
internalType: "uint256",
name: "quantityWanted",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "restrictedListerRoleOnly",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
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: [{
internalType: "uint256",
name: "_timeBuffer",
type: "uint256"
}, {
internalType: "uint256",
name: "_bidBufferBps",
type: "uint256"
}],
name: "setAuctionBuffers",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setMarketFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "setRestrictedListerRoleOnly",
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: "timeBuffer",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalListings",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_listingId",
type: "uint256"
}, {
internalType: "uint256",
name: "_quantityToList",
type: "uint256"
}, {
internalType: "uint256",
name: "_reservePricePerToken",
type: "uint256"
}, {
internalType: "uint256",
name: "_buyoutPricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "_currencyToAccept",
type: "address"
}, {
internalType: "uint256",
name: "_startTime",
type: "uint256"
}, {
internalType: "uint256",
name: "_secondsUntilEndTime",
type: "uint256"
}],
name: "updateListing",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "winningBid",
outputs: [{
internalType: "uint256",
name: "listingId",
type: "uint256"
}, {
internalType: "address",
name: "offeror",
type: "address"
}, {
internalType: "uint256",
name: "quantityWanted",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$i = "0x60a060405260078054600160481b600160c81b0319167201f400000000000003840000000000000000001790553480156200003957600080fd5b5060405162005e9e38038062005e9e8339810160408190526200005c91620003e9565b6001600255600380546001600160a01b0319166001600160a01b03861617905581516200009190600690602085019062000314565b50600480546001600160a01b0319166001600160a01b0387811691909117909155831660805260078054610100600160481b0319166101006001600160401b03841602179055620000ed6000620000e762000154565b62000170565b6200011c7ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c620000e762000154565b620001497f86d5cf0a6bdc8d859ba3bdc97043337c82a0e609035f378e419298b6a3e00ae6600062000170565b505050505062000550565b60006200016b6200018060201b620027091760201c565b905090565b6200017c8282620001b9565b5050565b6003546000906001600160a01b0316331415620001a4575060131936013560601c90565b6200016b620001fc60201b620027361760201c565b620001d082826200020060201b6200273a1760201c565b6000828152600160209081526040909120620001f7918390620027d9620002a2821b17901c565b505050565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200017c576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200025e62000154565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002b9836001600160a01b038416620002c2565b90505b92915050565b60008181526001830160205260408120546200030b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002bc565b506000620002bc565b828054620003229062000513565b90600052602060002090601f01602090048101928262000346576000855562000391565b82601f106200036157805160ff191683800117855562000391565b8280016001018555821562000391579182015b828111156200039157825182559160200191906001019062000374565b506200039f929150620003a3565b5090565b5b808211156200039f5760008155600101620003a4565b6001600160a01b0381168114620003d057600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156200040257600080fd5b85516200040f81620003ba565b809550506020808701516200042481620003ba565b60408801519095506200043781620003ba565b60608801519094506001600160401b03808211156200045557600080fd5b818901915089601f8301126200046a57600080fd5b8151818111156200047f576200047f620003d3565b604051601f8201601f19908116603f01168101908382118183101715620004aa57620004aa620003d3565b816040528281528c86848701011115620004c357600080fd5b600093505b82841015620004e75784840186015181850187015292850192620004c8565b82841115620004f95760008684830101525b809750505050505050608086015190509295509295909350565b600181811c908216806200052857607f821691505b602082108114156200054a57634e487b7160e01b600052602260045260246000fd5b50919050565b60805161590f6200058f6000396000818161096a01528181611e590152818161454f0152818161464a015281816149dc0152614a53015261590f6000f3fe6080604052600436106102a45760003560e01c8063a217fddf1161016e578063deb26b94116100cb578063ec91f2a41161007f578063f9ea29cb11610064578063f9ea29cb14610958578063fd967f471461098c578063ffa1ad74146109a257600080fd5b8063ec91f2a4146108fe578063f23a6e611461092c57600080fd5b8063e8a3d485116100b0578063e8a3d4851461085c578063ea0e02411461087e578063ebdfbce51461089e57600080fd5b8063deb26b9414610808578063e4104eaf1461083c57600080fd5b8063c78b616c11610122578063d4ac9b8c11610107578063d4ac9b8c146106bc578063d547741f14610743578063de74e57b1461076357600080fd5b8063c78b616c14610686578063ca15c8731461069c57600080fd5b8063acb1ba6711610153578063acb1ba6714610627578063bc197c811461063a578063c4b5b15f1461066657600080fd5b8063a217fddf146105e5578063ac9650d8146105fa57600080fd5b80633f5c3e871161021c5780638945257c116101d0578063918d407d116101b5578063918d407d1461056157806391d1485414610581578063938e3d7b146105c557600080fd5b80638945257c1461052e5780639010d07c1461054157600080fd5b8063572b6c0511610201578063572b6c05146104c557806361096ec6146104f45780636bab66ae1461050e57600080fd5b80633f5c3e871461045e5780634e03f28d1461049d57600080fd5b8063296f4e161161027357806331f7d9641161025857806331f7d964146103de578063354c7ab61461041e57806336568abe1461043e57600080fd5b8063296f4e161461039c5780632f2ff15d146103be57600080fd5b806301ffc9a7146102b057806303100aa4146102e5578063150b7a0214610327578063248a9ca31461036c57600080fd5b366102ab57005b600080fd5b3480156102bc57600080fd5b506102d06102cb366004614dd8565b6109b7565b60405190151581526020015b60405180910390f35b3480156102f157600080fd5b506103197f86d5cf0a6bdc8d859ba3bdc97043337c82a0e609035f378e419298b6a3e00ae681565b6040519081526020016102dc565b34801561033357600080fd5b50610353610342366004614e6e565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016102dc565b34801561037857600080fd5b50610319610387366004614ee1565b60009081526020819052604090206001015490565b3480156103a857600080fd5b506103bc6103b7366004614f7a565b610a09565b005b3480156103ca57600080fd5b506103bc6103d9366004615006565b610fc8565b3480156103ea57600080fd5b5061040673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6040516001600160a01b0390911681526020016102dc565b34801561042a57600080fd5b506103bc610439366004615044565b610ffa565b34801561044a57600080fd5b506103bc610459366004615006565b61109b565b34801561046a57600080fd5b5060075461048490610100900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102dc565b3480156104a957600080fd5b5060075461048490600160881b900467ffffffffffffffff1681565b3480156104d157600080fd5b506102d06104e0366004615061565b6003546001600160a01b0391821691161490565b34801561050057600080fd5b506007546102d09060ff1681565b34801561051a57600080fd5b506103bc610529366004615006565b611137565b6103bc61053c36600461507e565b611459565b34801561054d57600080fd5b5061040661055c3660046150bd565b611690565b34801561056d57600080fd5b506103bc61057c366004615006565b6116af565b34801561058d57600080fd5b506102d061059c366004615006565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156105d157600080fd5b506103bc6105e03660046150df565b611965565b3480156105f157600080fd5b50610319600081565b34801561060657600080fd5b5061061a610615366004615121565b611ac6565b6040516102dc91906151ee565b6103bc61063536600461507e565b611bbb565b34801561064657600080fd5b50610353610655366004615340565b63bc197c8160e01b95945050505050565b34801561067257600080fd5b506103bc6106813660046153ee565b611ea6565b34801561069257600080fd5b5061031960055481565b3480156106a857600080fd5b506103196106b7366004614ee1565b6123de565b3480156106c857600080fd5b506107116106d7366004614ee1565b600a602052600090815260409020805460018201546002830154600384015460049094015492936001600160a01b03928316939192169085565b604080519586526001600160a01b0394851660208701528501929092529091166060830152608082015260a0016102dc565b34801561074f57600080fd5b506103bc61075e366004615006565b6123f5565b34801561076f57600080fd5b506107f061077e366004614ee1565b600860208190526000918252604090912080546001820154600283015460038401546004850154600586015460068701546007880154988801546009890154600a9099015497996001600160a01b03978816999688169895979496939592941692909160ff808216916101009004168c565b6040516102dc9c9b9a9998979695949392919061548e565b34801561081457600080fd5b506103197ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c81565b34801561084857600080fd5b506103bc610857366004614ee1565b61241d565b34801561086857600080fd5b5061087161251f565b6040516102dc9190615512565b34801561088a57600080fd5b506103bc6108993660046150bd565b6125ad565b3480156108aa57600080fd5b506107116108b9366004615006565b60096020908152600092835260408084209091529082529020805460018201546002830154600384015460049094015492936001600160a01b03928316939192169085565b34801561090a57600080fd5b50600754610484906901000000000000000000900467ffffffffffffffff1681565b34801561093857600080fd5b50610353610947366004615525565b63f23a6e6160e01b95945050505050565b34801561096457600080fd5b506104067f000000000000000000000000000000000000000000000000000000000000000081565b34801561099857600080fd5b5061048461271081565b3480156109ae57600080fd5b50610319600281565b60006001600160e01b03198216630271189760e51b14806109e857506001600160e01b03198216630a85bd0160e11b145b80610a0357506001600160e01b0319821663152a902d60e11b145b92915050565b60075460ff161580610a425750610a427ff94103142c1baabe9ac2b5d1487bf783de9e69cfeea9a72f5c9c94afd7877b8c61059c6127ee565b610ab95760405162461bcd60e51b815260206004820152602e60248201527f4d61726b6574706c6163653a2063616c6c657220646f6573206e6f742068617660448201527f65204c49535445525f524f4c452e00000000000000000000000000000000000060648201526084015b60405180910390fd5b6000816060015111610b335760405162461bcd60e51b815260206004820152603860248201527f4d61726b6574706c6163653a207365636f6e6473556e74696c456e6454696d6560448201527f206d7573742062652067726561746572207468616e20302e00000000000000006064820152608401610ab0565b6000610b3d6127f8565b90506000610b496127ee565b90506000610b5a8460000151612816565b90506000610b6c8286608001516129a2565b905060008111610be45760405162461bcd60e51b815260206004820152602660248201527f4d61726b6574706c6163653a206c697374696e6720696e76616c69642071756160448201527f6e746974792e00000000000000000000000000000000000000000000000000006064820152608401610ab0565b84516001600160a01b031660009081527f58ab120e90da50c4204acb951cf8a8e4064c5db6b9b5574ad23babd4c2adb7c3602052604090205460ff1680610c745750600080527f58ab120e90da50c4204acb951cf8a8e4064c5db6b9b5574ad23babd4c2adb7c36020527fd016e53311377072927d7422612766fca1878713dce1af1760ba3481f5c534975460ff165b610ce65760405162461bcd60e51b815260206004820152602560248201527f4d61726b6574706c6163653a206c697374696e6720756e617070726f7665642060448201527f61737365740000000000000000000000000000000000000000000000000000006064820152608401610ab0565b610cfb838660000151876020015184866129d9565b600042866040015110610d12578560400151610d14565b425b90506000604051806101800160405280878152602001866001600160a01b0316815260200188600001516001600160a01b0316815260200188602001518152602001838152602001886060015184610d6c91906155a4565b81526020018481526020018860a001516001600160a01b031681526020018860c0015181526020018860e001518152602001856001811115610db057610db061544d565b81526020018861010001516001811115610dcc57610dcc61544d565b90526000878152600860208181526040928390208451815590840151600180830180546001600160a01b03199081166001600160a01b0394851617909155948601516002840180548716918416919091179055606086015160038401556080860151600484015560a0860151600584015560c0860151600684015560e0860151600784018054909616921691909117909355610100840151918101919091556101208301516009820155610140830151600a82018054949550859492939192909160ff19909116908381811115610ea557610ea561544d565b0217905550610160820151600a8201805461ff001916610100836001811115610ed057610ed061544d565b021790555060019150610ee09050565b8161016001516001811115610ef757610ef761544d565b1415610f6f578061010001518161012001511015610f635760405162461bcd60e51b815260206004820152602360248201527f726573657276652070726963652065786365656473206275796f75742070726960448201526231b29760e91b6064820152608401610ab0565b610f6f85308584612d3c565b846001600160a01b031687600001516001600160a01b0316877f9e578277632a71dd17ab11c1f584c51deafef022c94389ecb050eb92713725f684604051610fb791906155bc565b60405180910390a450505050505050565b600082815260208190526040902060010154610feb81610fe66127ee565b612e8e565b610ff58383612f0c565b505050565b611007600061059c6127ee565b6110535760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a206e6f742061206d6f64756c652061646d696e2e6044820152606401610ab0565b6007805460ff19168215159081179091556040519081527f80b4303f755d7d3d4d483a1580281ef7aaeb82947826a1dc63a6366875765cb0906020015b60405180910390a150565b6110a36127ee565b6001600160a01b0316816001600160a01b0316146111295760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610ab0565b6111338282612f2e565b5050565b6002805414156111895760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab0565b60028080556000838152600860208181526040808420815161018081018352815481526001808301546001600160a01b0390811695830195909552968201548416928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015490921660e0820152918101546101008301526009810154610120830152600a81015492939192909161014084019160ff169081111561123f5761123f61544d565b60018111156112505761125061544d565b8152602001600a820160019054906101000a900460ff1660018111156112785761127861544d565b60018111156112895761128961544d565b9052509050600181610160015160018111156112a7576112a761544d565b146112f45760405162461bcd60e51b815260206004820152601c60248201527f4d61726b6574706c6163653a206e6f7420616e2061756374696f6e2e000000006044820152606401610ab0565b6000838152600a60209081526040808320815160a0810183528154815260018201546001600160a01b03908116948201949094526002820154928101929092526003810154909216606082015260049091015460808083019190915283015190919042108061136e575060208201516001600160a01b0316155b905080156113845761137f83612f50565b61144d565b428360a00151106113fd5760405162461bcd60e51b815260206004820152603660248201527f4d61726b6574706c6163653a2063616e6e6f7420636c6f73652061756374696f60448201527f6e206265666f72652069742068617320656e6465642e000000000000000000006064820152608401610ab0565b82602001516001600160a01b0316846001600160a01b031614156114255761142583836130d2565b81602001516001600160a01b0316846001600160a01b0316141561144d5761144d83836132ed565b50506001600255505050565b6002805414156114ab5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab0565b60028080556000858152600860208181526040808420815161018081018352815481526001808301546001600160a01b0390811695830195909552968201548416928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015490921660e0820152918101546101008301526009810154610120830152600a81015492939192909161014084019160ff16908111156115615761156161544d565b60018111156115725761157261544d565b8152602001600a820160019054906101000a900460ff16600181111561159a5761159a61544d565b60018111156115ab576115ab61544d565b905250905060006115ba6127ee565b90508160e001516001600160a01b0316846001600160a01b03161480156115f05750848261012001516115ed9190615685565b83145b6116625760405162461bcd60e51b815260206004820152602660248201527f4d61726b6574706c6163653a20696e76616c69642063757272656e6379206f7260448201527f20707269636500000000000000000000000000000000000000000000000000006064820152608401610ab0565b61168382828460e001518886610120015161167d9190615685565b896134f3565b5050600160025550505050565b60008281526001602052604081206116a8908361369d565b9392505050565b6002805414156117015760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab0565b600280558161170e6127ee565b6000828152600860205260409020600101546001600160a01b0390811691161461178e5760405162461bcd60e51b815260206004820152602b60248201527f4d61726b6574706c6163653a2063616c6c6572206973206e6f74206c6973746960448201526a37339031b932b0ba37b91760a91b6064820152608401610ab0565b60008381526009602081815260408084206001600160a01b038088168652908352818520825160a08082018552825482526001808401548516838801526002808501548488015260038086015487166060808701919091526004968701546080808801919091528f8d526008808c528a8e208b5161018081018d5281548152818801548c169d81019d909d52948501548a169a8c019a909a5291830154908a01529481015494880194909452600584015491870191909152600683015460c0870152600783015490931660e08601529281015461010085015293840154610120840152600a8401549194939161014084019160ff909116908111156118955761189561544d565b60018111156118a6576118a661544d565b8152602001600a820160019054906101000a900460ff1660018111156118ce576118ce61544d565b60018111156118df576118df61544d565b90525060008681526009602090815260408083206001600160a01b03891684529091528082208281556001810180546001600160a01b031990811690915560028201849055600382018054909116905560040191909155606084015190840151608085015192935061144d9284928892909161195b9190615685565b86604001516134f3565b600480546040805163a217fddf60e01b815290516001600160a01b03909216926391d1485492849263a217fddf9281810192602092909190829003018186803b1580156119b157600080fd5b505afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e991906156a4565b6119f16127ee565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160206040518083038186803b158015611a3657600080fd5b505afa158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e91906156bd565b611aba5760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a206e6f742070726f746f636f6c2061646d696e2e6044820152606401610ab0565b610ff560068383614d3f565b60608167ffffffffffffffff811115611ae157611ae1614efa565b604051908082528060200260200182016040528015611b1457816020015b6060815260200190600190039081611aff5790505b50905060005b82811015611bb457611b8430858584818110611b3857611b386156da565b9050602002810190611b4a91906156f0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136a992505050565b828281518110611b9657611b966156da565b60200260200101819052508080611bac90615737565b915050611b1a565b5092915050565b600280541415611c0d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab0565b60028080556000858152600860208181526040808420815161018081018352815481526001808301546001600160a01b0390811695830195909552968201548416928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015490921660e0820152918101546101008301526009810154610120830152600a81015492939192909161014084019160ff1690811115611cc357611cc361544d565b6001811115611cd457611cd461544d565b8152602001600a820160019054906101000a900460ff166001811115611cfc57611cfc61544d565b6001811115611d0d57611d0d61544d565b815250509050428160a00151118015611d295750428160800151105b611d755760405162461bcd60e51b815260206004820152601e60248201527f4d61726b6574706c6163653a20696e616374697665206c697374696e672e00006044820152606401610ab0565b60006040518060a00160405280878152602001611d906127ee565b6001600160a01b0390811682526020820188905286166040820152606001849052905060018261016001516001811115611dcc57611dcc61544d565b1415611e0e5760e08201516001600160a01b0316606082015261014082015160c0830151611dfa91906129a2565b6040820152611e0982826136ce565b611683565b60008261016001516001811115611e2757611e2761544d565b1415611683576001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14611e575783611e79565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03166060820152610140820151611e9790866129a2565b60408201526116838282613a9e565b86611eaf6127ee565b6000828152600860205260409020600101546001600160a01b03908116911614611f2f5760405162461bcd60e51b815260206004820152602b60248201527f4d61726b6574706c6163653a2063616c6c6572206973206e6f74206c6973746960448201526a37339031b932b0ba37b91760a91b6064820152608401610ab0565b6000888152600860208181526040808420815161018081018352815481526001808301546001600160a01b039081169583019590955260028301548516938201939093526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015490931660e0840152928301546101008301526009830154610120830152600a83015491929161014084019160ff90911690811115611fe057611fe061544d565b6001811115611ff157611ff161544d565b8152602001600a820160019054906101000a900460ff1660018111156120195761201961544d565b600181111561202a5761202a61544d565b81525050905060006120418261014001518a6129a2565b905060006001836101600151600181111561205e5761205e61544d565b149050801561213c57826080015142106120e05760405162461bcd60e51b815260206004820152602560248201527f4d61726b6574706c6163653a2061756374696f6e20616c72656164792073746160448201527f727465642e0000000000000000000000000000000000000000000000000000006064820152608401610ab0565b8888101561213c5760405162461bcd60e51b815260206004820152602360248201527f726573657276652070726963652065786365656473206275796f75742070726960448201526231b29760e91b6064820152608401610ab0565b6000861561214a5786612150565b83608001515b90506040518061018001604052808d815260200161216c6127ee565b6001600160a01b0316815260200185604001516001600160a01b0316815260200185606001518152602001828152602001876000146121b4576121af88846155a4565b6121ba565b8560a001515b8152602001848152602001896001600160a01b031681526020018b81526020018a815260200185610140015160018111156121f7576121f761544d565b815260200185610160015160018111156122135761221361544d565b905260008d8152600860208181526040928390208451815590840151600180830180546001600160a01b03199081166001600160a01b0394851617909155948601516002840180548716918416919091179055606086015160038401556080860151600484015560a0860151600584015560c0860151600684015560e0860151600784018054909616921691909117909355610100840151918101919091556101208301516009820155610140830151600a8201805492939192909160ff199091169083818111156122e7576122e761544d565b0217905550610160820151600a8201805461ff0019166101008360018111156123125761231261544d565b0217905550505060c084015183146123945781801561232f575082155b156123465761233d84612f50565b505050506123d4565b8115612360576123603085602001518660c0015187612d3c565b61237e846020015185604001518660600151868861014001516129d9565b8115612394576123948460200151308587612d3c565b83602001516001600160a01b03168c7fa00227275ba75aea329d91406a2884d227dc386f939f1d18e15a7317152432ca60405160405180910390a3505050505b5050505050505050565b6000818152600160205260408120610a0390613c59565b60008281526020819052604090206001015461241381610fe66127ee565b610ff58383612f2e565b61242a600061059c6127ee565b6124765760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a206e6f742061206d6f64756c652061646d696e2e6044820152606401610ab0565b61271081106124c75760405162461bcd60e51b815260206004820152601960248201527f4d61726b6574706c6163653a20696e76616c6964204250532e000000000000006044820152606401610ab0565b6007805468ffffffffffffffff00191661010067ffffffffffffffff8416908102919091179091556040519081527f1923ecef8dbc1cebea2768819f7df282b72fb6d62bf99da204590b9d5cac7a7b90602001611090565b6006805461252c90615752565b80601f016020809104026020016040519081016040528092919081815260200182805461255890615752565b80156125a55780601f1061257a576101008083540402835291602001916125a5565b820191906000526020600020905b81548152906001019060200180831161258857829003601f168201915b505050505081565b6125ba600061059c6127ee565b6126065760405162461bcd60e51b815260206004820181905260248201527f4d61726b6574706c6163653a206e6f742061206d6f64756c652061646d696e2e6044820152606401610ab0565b61271081106126575760405162461bcd60e51b815260206004820152601960248201527f4d61726b6574706c6163653a20696e76616c6964204250532e000000000000006044820152606401610ab0565b6007805467ffffffffffffffff838116600160881b027fffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffff918616690100000000000000000002919091167fffffffffffffff00000000000000000000000000000000ffffffffffffffffff9092169190911717905560408051838152602081018390527f441ed6470e96704c3f8c9e70c209107078aab3f17311385e886081b91aa75088910160405180910390a15050565b6003546000906001600160a01b031633141561272c575060131936013560601c90565b503390565b905090565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611133576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556127956127ee565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006116a8836001600160a01b038416613c63565b6000612731612709565b6005805490600190600061280c83856155a4565b9250508190555090565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526000906001600160a01b038316906301ffc9a79060240160206040518083038186803b15801561285f57600080fd5b505afa158015612873573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289791906156bd565b156128a457506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a79060240160206040518083038186803b1580156128ea57600080fd5b505afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906156bd565b1561292f57506001919050565b60405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a206d75737420696d706c656d656e74204552432060448201527f31313535206f7220455243203732312e000000000000000000000000000000006064820152608401610ab0565b919050565b6000816129b157506000610a03565b60018360018111156129c5576129c561544d565b146129d057816116a8565b50600192915050565b306000808360018111156129ef576129ef61544d565b1415612b0757604051627eeac760e11b81526001600160a01b0388811660048301526024820187905285919088169062fdd58e9060440160206040518083038186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7691906156a4565b10158015612b00575060405163e985e9c560e01b81526001600160a01b038881166004830152838116602483015287169063e985e9c59060440160206040518083038186803b158015612ac857600080fd5b505afa158015612adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0091906156bd565b9050612cc0565b6001836001811115612b1b57612b1b61544d565b1415612cc0576040516331a9108f60e11b8152600481018690526001600160a01b038089169190881690636352211e9060240160206040518083038186803b158015612b6657600080fd5b505afa158015612b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9e919061578d565b6001600160a01b0316148015612cbd575060405163020604bf60e21b8152600481018690526001600160a01b03808416919088169063081812fc9060240160206040518083038186803b158015612bf457600080fd5b505afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c919061578d565b6001600160a01b03161480612cbd575060405163e985e9c560e01b81526001600160a01b038881166004830152838116602483015287169063e985e9c59060440160206040518083038186803b158015612c8557600080fd5b505afa158015612c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbd91906156bd565b90505b80612d335760405162461bcd60e51b815260206004820152603460248201527f4d61726b6574706c6163653a20696e73756666696369656e7420746f6b656e2060448201527f62616c616e6365206f7220617070726f76616c2e0000000000000000000000006064820152608401610ab0565b50505050505050565b60008161014001516001811115612d5557612d5561544d565b1415612dea5760408082015160608301519151637921219560e11b81526001600160a01b038781166004830152868116602483015260448201939093526064810185905260a06084820152600060a482015291169063f242432a9060c401600060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b50505050612e88565b60018161014001516001811115612e0357612e0361544d565b1415612e885760408082015160608301519151635c46a7ef60e11b81526001600160a01b03878116600483015286811660248301526044820193909352608060648201526000608482015291169063b88d4fde9060a401600060405180830381600087803b158015612e7457600080fd5b505af11580156123d4573d6000803e3d6000fd5b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661113357612eca816001600160a01b03166014613cb2565b612ed5836020613cb2565b604051602001612ee69291906157aa565b60408051601f198184030181529082905262461bcd60e51b8252610ab091600401615512565b612f16828261273a565b6000828152600160205260409020610ff590826127d9565b612f388282613e5b565b6000828152600160205260409020610ff59082613ef8565b612f586127ee565b81516000908152600860205260409020600101546001600160a01b03908116911614612fec5760405162461bcd60e51b815260206004820152602f60248201527f4d61726b6574706c6163653a2063616c6c6572206973206e6f7420746865206c60448201527f697374696e672063726561746f722e00000000000000000000000000000000006064820152608401610ab0565b8051600090815260086020818152604083208381556001810180546001600160a01b0319908116909155600282018054821690556003820185905560048201859055600582018590556006820185905560078201805490911690559182018390556009820192909255600a01805461ffff1916905581015160c082015161307591309184612d3c565b600161307f6127ee565b8251602080850151604080516001600160a01b0392831681526000938101939093529316927f572cdc5ca5e918473319d0f4737494e4709ac879a7d0bcd11ce1bef24b24e81d910160405180910390a450565b60008260c0015182608001516130e89190615685565b600060c085018181524260a0870190815286518352600860208181526040948590208951815590890151600180830180546001600160a01b039384166001600160a01b031991821617909155968b015160028401805491841691891691909117905560608b0151600384015560808b01516004840155935160058301559351600682015560e089015160078201805491909516951694909417909255610100870151918301919091556101208601516009830155610140860151600a8301805494955087949192909160ff19169083818111156131c7576131c761544d565b0217905550610160820151600a8201805461ff0019166101008360018111156131f2576131f261544d565b02179055505060006080840181815285518252600a602090815260409283902086518155818701516001820180546001600160a01b03199081166001600160a01b03938416179091559488015160028301556060880151600383018054909616911617909355905160049092019190915584015160e085015161327a92503091908487613f0d565b60006132846127ee565b6001600160a01b031684600001517f572cdc5ca5e918473319d0f4737494e4709ac879a7d0bcd11ce1bef24b24e81d866020015186602001516040516132e09291906001600160a01b0392831681529116602082015260400190565b60405180910390a4505050565b600081604001519050428360a0018181525050600082604001818152505081600a6000856000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550608082015181600401559050508260086000856000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160080155610120820151816009015561014082015181600a0160006101000a81548160ff021916908360018111156134b0576134b061544d565b0217905550610160820151600a8201805461ff0019166101008360018111156134db576134db61544d565b021790555090505061327a3083602001518386612d3c565b6134ff85858385614127565b808560c001818151613511919061582b565b90525084516000908152600860208181526040928390208851815590880151600180830180546001600160a01b03199081166001600160a01b0394851617909155948a0151600284018054871691841691909117905560608a0151600384015560808a0151600484015560a08a0151600584015560c08a0151600684015560e08a0151600784018054909616921691909117909355610100880151918101919091556101208701516009820155610140870151600a82018054899460ff199091169083818111156135e4576135e461544d565b0217905550610160820151600a8201805461ff00191661010083600181111561360f5761360f61544d565b0217905550905050613628848660200151858589613f0d565b6136388560200151858388612d3c565b602080860151604080880151885182516001600160a01b038a81168252958101879052928301879052928416931691907f306e6cde5eb293794d557a3a6c844de939e6206b05e6910451c512852bf654a5906060015b60405180910390a45050505050565b60006116a88383614387565b60606116a883836040518060600160405280602781526020016158dc602791396143b1565b81516000908152600a60209081526040808320815160a0810183528154815260018201546001600160a01b039081169482019490945260028201549281018390526003820154909316606084015260040154608083018190529192916137349190615685565b905060008360400151846080015161374c9190615685565b905061376d8560c001518661010001516137669190615685565b838361449c565b6137b95760405162461bcd60e51b815260206004820152601d60248201527f4d61726b6574706c6163653a206e6f742077696e6e696e67206269642e0000006044820152606401610ab0565b60008561012001511180156137e257508460c001518561012001516137de9190615685565b8110155b156137f6576137f185856132ed565b613a97565b84516000908152600a602090815260409182902086518155908601516001820180546001600160a01b03199081166001600160a01b03938416179091559287015160028301556060870151600383018054909416911617909155608085015160049091015560075460a0860151690100000000000000000090910467ffffffffffffffff169061388790429061582b565b116139bf5760075460a086018051690100000000000000000090920467ffffffffffffffff16916138b99083906155a4565b90525084516000908152600860208181526040928390208851815590880151600180830180546001600160a01b03199081166001600160a01b0394851617909155948a0151600284018054871691841691909117905560608a0151600384015560808a0151600484015560a08a0151600584015560c08a0151600684015560e08a0151600784018054909616921691909117909355610100880151918101919091556101208701516009820155610140870151600a82018054899460ff1990911690838181111561398c5761398c61544d565b0217905550610160820151600a8201805461ff0019166101008360018111156139b7576139b761544d565b021790555050505b60208301516001600160a01b0316158015906139db5750600082115b156139f4576139f48560e00151308560200151856144f9565b613a088560e00151856020015130846144f9565b8461016001516001811115613a1f57613a1f61544d565b84602001516001600160a01b031686600001517f8a412352601a288b3de40254a9de2ab14a497aa3638a7e558480680a56e2705d876040015188604001518960800151613a6c9190615685565b6060808b01516040805194855260208501939093526001600160a01b0316918301919091520161368e565b5050505050565b8160c00151816040015111158015613aba575060008260c00151115b613b2c5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574706c6163653a20696e73756666696369656e7420746f6b656e7360448201527f20696e206c697374696e672e00000000000000000000000000000000000000006064820152608401610ab0565b613b528160200151826060015183604001518460800151613b4d9190615685565b6146d7565b8151600090815260096020908152604080832082850180516001600160a01b0390811686529190935292819020845181559151600180840180549286166001600160a01b0319938416179055918501516002840155606085015160038401805491909516911617909255608083015160049091015561016083015190811115613bdd57613bdd61544d565b81602001516001600160a01b031683600001517f8a412352601a288b3de40254a9de2ab14a497aa3638a7e558480680a56e2705d846040015185604001518660800151613c2a9190615685565b6060878101516040805194855260208501939093526001600160a01b0316838301529051918290030190a45050565b6000610a03825490565b6000818152600183016020526040812054613caa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a03565b506000610a03565b60606000613cc1836002615685565b613ccc9060026155a4565b67ffffffffffffffff811115613ce457613ce4614efa565b6040519080825280601f01601f191660200182016040528015613d0e576020820181803683370190505b509050600360fc1b81600081518110613d2957613d296156da565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613d5857613d586156da565b60200101906001600160f81b031916908160001a9053506000613d7c846002615685565b613d879060016155a4565b90505b6001811115613e0c577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613dc857613dc86156da565b1a60f81b828281518110613dde57613dde6156da565b60200101906001600160f81b031916908160001a90535060049490941c93613e0581615842565b9050613d8a565b5083156116a85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ab0565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615611133576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613eb46127ee565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006116a8836001600160a01b038416614853565b60075460009061271090613f3090610100900467ffffffffffffffff1685615685565b613f3a9190615859565b6004805460405163f2aab4b360e01b81523092810192909252919250613fc791869189916001600160a01b03169063f2aab4b39060240160206040518083038186803b158015613f8957600080fd5b505afa158015613f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fc1919061578d565b846144f9565b6000613fd3828561582b565b6040808501516060860151915163152a902d60e11b81529293506001600160a01b031691632a55205a91614014918890600401918252602082015260400190565b604080518083038186803b15801561402b57600080fd5b505afa92505050801561405b575060408051601f3d908101601f191682019092526140589181019061587b565b60015b6140645761411b565b6001600160a01b0382161580159061407c5750600081115b15614118578561408c85836155a4565b11156141005760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574706c6163653a20546f74616c206d61726b65742066656573206560448201527f7863656564207468652070726963652e000000000000000000000000000000006064820152608401610ab0565b61410a818461582b565b9250614118878a84846144f9565b50505b612d33858888846144f9565b600084610160015160018111156141405761414061544d565b146141b35760405162461bcd60e51b815260206004820152602560248201527f4d61726b6574706c6163653a2063616e6e6f74206275792066726f6d206c697360448201527f74696e672e0000000000000000000000000000000000000000000000000000006064820152608401610ab0565b60008460c001511180156141c75750600082115b80156141d757508360c001518211155b6142495760405162461bcd60e51b815260206004820152602d60248201527f4d61726b6574706c6163653a20627579696e6720696e76616c696420616d6f7560448201527f6e74206f6620746f6b656e732e000000000000000000000000000000000000006064820152608401610ab0565b8360a001514210801561425f5750836080015142115b6142b75760405162461bcd60e51b8152602060048201526024808201527f4d61726b6574706c6163653a206e6f742077697468696e2073616c652077696e6044820152633237bb9760e11b6064820152608401610ab0565b60e08401516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561435a578034146143555760405162461bcd60e51b815260206004820152603860248201527f4d61726b6574706c6163653a20696e73756666696369656e742063757272656e60448201527f63792062616c616e6365206f7220616c6c6f77616e63652e00000000000000006064820152608401610ab0565b614369565b614369838560e00151836146d7565b612e88846020015185604001518660600151858861014001516129d9565b600082600001828154811061439e5761439e6156da565b9060005260206000200154905092915050565b6060833b6144275760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610ab0565b600080856001600160a01b03168560405161444291906158a9565b600060405180830381855af49150503d806000811461447d576040519150601f19603f3d011682016040523d82523d6000602084013e614482565b606091505b5091509150614492828286614946565b9695505050505050565b600082156144ec5782821180156144e75750600754600160881b900467ffffffffffffffff16836127106144d0828661582b565b6144da9190615685565b6144e49190615859565b10155b6144f1565b838210155b949350505050565b8061450357612e88565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156146cb576001600160a01b0383163014156145c257604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561459b57600080fd5b505af11580156145af573d6000803e3d6000fd5b505050506145bd828261497f565b612e88565b6001600160a01b0382163014156146c1573481146146485760405162461bcd60e51b815260206004820152603a60248201527f4d61726b6574706c6163653a206e617469766520746f6b656e2076616c75652060448201527f646f6573206e6f74206d617463682062696420616d6f756e742e0000000000006064820152608401610ab0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156146a357600080fd5b505af11580156146b7573d6000803e3d6000fd5b5050505050612e88565b6145bd828261497f565b612e8884848484614a76565b6040516370a0823160e01b81526001600160a01b0384811660048301528291908416906370a082319060240160206040518083038186803b15801561471b57600080fd5b505afa15801561472f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061475391906156a4565b101580156147e15750604051636eb1769f60e11b81526001600160a01b03848116600483015230602483015282919084169063dd62ed3e9060440160206040518083038186803b1580156147a657600080fd5b505afa1580156147ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147de91906156a4565b10155b610ff55760405162461bcd60e51b815260206004820152603860248201527f4d61726b6574706c6163653a20696e73756666696369656e742063757272656e60448201527f63792062616c616e6365206f7220616c6c6f77616e63652e00000000000000006064820152608401610ab0565b6000818152600183016020526040812054801561493c57600061487760018361582b565b855490915060009061488b9060019061582b565b90508181146148f05760008660000182815481106148ab576148ab6156da565b90600052602060002001549050808760000184815481106148ce576148ce6156da565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614901576149016158c5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a03565b6000915050610a03565b606083156149555750816116a8565b8251156149655782518084602001fd5b8160405162461bcd60e51b8152600401610ab09190615512565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146149cc576040519150601f19603f3d011682016040523d82523d6000602084013e6149d1565b606091505b5050905080610ff5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015614a3557600080fd5b505af1158015614a49573d6000803e3d6000fd5b5050505050610ff57f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b03161415614a9557612e88565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b158015614ada57600080fd5b505afa158015614aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b1291906156a4565b905060006001600160a01b0385163014614bb5576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528716906323b872dd90606401602060405180830381600087803b158015614b7857600080fd5b505af1158015614b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bb091906156bd565b614c37565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b158015614bff57600080fd5b505af1158015614c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c3791906156bd565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b158015614c7e57600080fd5b505afa158015614c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cb691906156a4565b9050818015614ccd5750614cca84846155a4565b81145b612d335760405162461bcd60e51b815260206004820152602960248201527f4d61726b6574706c6163653a206661696c656420746f207472616e736665722060448201527f63757272656e63792e00000000000000000000000000000000000000000000006064820152608401610ab0565b828054614d4b90615752565b90600052602060002090601f016020900481019282614d6d5760008555614db3565b82601f10614d865782800160ff19823516178555614db3565b82800160010185558215614db3579182015b82811115614db3578235825591602001919060010190614d98565b50614dbf929150614dc3565b5090565b5b80821115614dbf5760008155600101614dc4565b600060208284031215614dea57600080fd5b81356001600160e01b0319811681146116a857600080fd5b6001600160a01b0381168114614e1757600080fd5b50565b803561299d81614e02565b60008083601f840112614e3757600080fd5b50813567ffffffffffffffff811115614e4f57600080fd5b602083019150836020828501011115614e6757600080fd5b9250929050565b600080600080600060808688031215614e8657600080fd5b8535614e9181614e02565b94506020860135614ea181614e02565b935060408601359250606086013567ffffffffffffffff811115614ec457600080fd5b614ed088828901614e25565b969995985093965092949392505050565b600060208284031215614ef357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715614f3457614f34614efa565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614f6357614f63614efa565b604052919050565b80356002811061299d57600080fd5b60006101208284031215614f8d57600080fd5b614f95614f10565b614f9e83614e1a565b815260208301356020820152604083013560408201526060830135606082015260808301356080820152614fd460a08401614e1a565b60a082015260c083013560c082015260e083013560e0820152610100614ffb818501614f6b565b908201529392505050565b6000806040838503121561501957600080fd5b82359150602083013561502b81614e02565b809150509250929050565b8015158114614e1757600080fd5b60006020828403121561505657600080fd5b81356116a881615036565b60006020828403121561507357600080fd5b81356116a881614e02565b6000806000806080858703121561509457600080fd5b843593506020850135925060408501356150ad81614e02565b9396929550929360600135925050565b600080604083850312156150d057600080fd5b50508035926020909101359150565b600080602083850312156150f257600080fd5b823567ffffffffffffffff81111561510957600080fd5b61511585828601614e25565b90969095509350505050565b6000806020838503121561513457600080fd5b823567ffffffffffffffff8082111561514c57600080fd5b818501915085601f83011261516057600080fd5b81358181111561516f57600080fd5b8660208260051b850101111561518457600080fd5b60209290920196919550909350505050565b60005b838110156151b1578181015183820152602001615199565b83811115612e885750506000910152565b600081518084526151da816020860160208601615196565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561524357603f198886030184526152318583516151c2565b94509285019290850190600101615215565b5092979650505050505050565b600082601f83011261526157600080fd5b8135602067ffffffffffffffff82111561527d5761527d614efa565b8160051b61528c828201614f3a565b92835284810182019282810190878511156152a657600080fd5b83870192505b848310156152c5578235825291830191908301906152ac565b979650505050505050565b600082601f8301126152e157600080fd5b813567ffffffffffffffff8111156152fb576152fb614efa565b61530e601f8201601f1916602001614f3a565b81815284602083860101111561532357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561535857600080fd5b853561536381614e02565b9450602086013561537381614e02565b9350604086013567ffffffffffffffff8082111561539057600080fd5b61539c89838a01615250565b945060608801359150808211156153b257600080fd5b6153be89838a01615250565b935060808801359150808211156153d457600080fd5b506153e1888289016152d0565b9150509295509295909350565b600080600080600080600060e0888a03121561540957600080fd5b87359650602088013595506040880135945060608801359350608088013561543081614e02565b9699959850939692959460a0840135945060c09093013592915050565b634e487b7160e01b600052602160045260246000fd5b60028110614e1757634e487b7160e01b600052602160045260246000fd5b61548a81615463565b9052565b6000610180820190508d82526001600160a01b03808e166020840152808d1660408401528b60608401528a60808401528960a08401528860c084015280881660e08401525085610100830152846101208301526154ea84615463565b836101408301526154fa83615463565b826101608301529d9c50505050505050505050505050565b6020815260006116a860208301846151c2565b600080600080600060a0868803121561553d57600080fd5b853561554881614e02565b9450602086013561555881614e02565b93506040860135925060608601359150608086013567ffffffffffffffff81111561558257600080fd5b6153e1888289016152d0565b634e487b7160e01b600052601160045260246000fd5b600082198211156155b7576155b761558e565b500190565b815181526020808301516101808301916155e0908401826001600160a01b03169052565b5060408301516155fb60408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015161563e60e08401826001600160a01b03169052565b50610100838101519083015261012080840151908301526101408084015161566882850182615481565b50506101608084015161567d82850182615481565b505092915050565b600081600019048311821515161561569f5761569f61558e565b500290565b6000602082840312156156b657600080fd5b5051919050565b6000602082840312156156cf57600080fd5b81516116a881615036565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261570757600080fd5b83018035915067ffffffffffffffff82111561572257600080fd5b602001915036819003821315614e6757600080fd5b600060001982141561574b5761574b61558e565b5060010190565b600181811c9082168061576657607f821691505b6020821081141561578757634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561579f57600080fd5b81516116a881614e02565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516157e2816017850160208801615196565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161581f816028840160208801615196565b01602801949350505050565b60008282101561583d5761583d61558e565b500390565b6000816158515761585161558e565b506000190190565b60008261587657634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561588e57600080fd5b825161589981614e02565b6020939093015192949293505050565b600082516158bb818460208701615196565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$i = function isSuperArgs(xs) {
return xs.length > 1;
};
var Marketplace__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Marketplace__factory, _ContractFactory);
function Marketplace__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$i(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$11, _bytecode$i, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Marketplace__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _nativeTokenWrapper, _uri, _marketFeeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _uri, _marketFeeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _nativeTokenWrapper, _uri, _marketFeeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _uri, _marketFeeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Marketplace__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$11);
};
Marketplace__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$11, signerOrProvider);
};
return Marketplace__factory;
}(ContractFactory);
Marketplace__factory.bytecode = _bytecode$i;
Marketplace__factory.abi = _abi$11;
var _abi$12 = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "burnFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
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: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "nonces",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}, {
internalType: "uint256",
name: "deadline",
type: "uint256"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "permit",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
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: [],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$j = "0x6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b50604051806040016040528060088152602001672aa9a21021b7b4b760c11b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060088152602001672aa9a21021b7b4b760c11b815250604051806040016040528060048152602001635553444360e01b81525081818160059080519060200190620000cc92919062000351565b508051620000e290600690602084019062000351565b50506007805460ff1916905550620000fc600033620001ec565b620001287f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620001ec565b620001547f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620001ec565b5050815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120525062000434565b620001f88282620001fc565b5050565b6200021382826200023f60201b62000be21760201c565b60008281526001602090815260409091206200023a91839062000c80620002df821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001f8576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200029b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620002f6836001600160a01b038416620002ff565b90505b92915050565b60008181526001830160205260408120546200034857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002f9565b506000620002f9565b8280546200035f90620003f7565b90600052602060002090601f016020900481019282620003835760008555620003ce565b82601f106200039e57805160ff1916838001178555620003ce565b82800160010185558215620003ce579182015b82811115620003ce578251825591602001919060010190620003b1565b50620003dc929150620003e0565b5090565b5b80821115620003dc5760008155600101620003e1565b600181811c908216806200040c57607f821691505b602082108114156200042e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516101405161209e6200048f6000396000610aac01526000611122015260006111710152600061114c015260006110a5015260006110cf015260006110f9015261209e6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063a457c2d7116100a2578063d539139311610071578063d539139314610422578063d547741f14610449578063dd62ed3e1461045c578063e63ab1e91461049557600080fd5b8063a457c2d7146103d6578063a9059cbb146103e9578063ca15c873146103fc578063d505accf1461040f57600080fd5b80639010d07c116100de5780639010d07c1461036457806391d148541461038f57806395d89b41146103c6578063a217fddf146103ce57600080fd5b806370a082311461030d57806379cc6790146103365780637ecebe00146103495780638456cb591461035c57600080fd5b8063313ce567116101875780633f4ba83a116101565780633f4ba83a146102d457806340c10f19146102dc57806342966c68146102ef5780635c975abb1461030257600080fd5b8063313ce567146102975780633644e515146102a657806336568abe146102ae57806339509351146102c157600080fd5b806318160ddd116101c357806318160ddd1461023a57806323b872dd1461024c578063248a9ca31461025f5780632f2ff15d1461028257600080fd5b806301ffc9a7146101ea57806306fdde0314610212578063095ea7b314610227575b600080fd5b6101fd6101f8366004611cde565b6104bc565b60405190151581526020015b60405180910390f35b61021a6104e7565b6040516102099190611d34565b6101fd610235366004611d83565b610579565b6004545b604051908152602001610209565b6101fd61025a366004611dad565b61058f565b61023e61026d366004611de9565b60009081526020819052604090206001015490565b610295610290366004611e02565b610653565b005b60405160128152602001610209565b61023e61067e565b6102956102bc366004611e02565b61068d565b6101fd6102cf366004611d83565b610719565b610295610755565b6102956102ea366004611d83565b6107fb565b6102956102fd366004611de9565b610805565b60075460ff166101fd565b61023e61031b366004611e2e565b6001600160a01b031660009081526002602052604090205490565b610295610344366004611d83565b610812565b61023e610357366004611e2e565b610893565b6102956108b1565b610377610372366004611e49565b610955565b6040516001600160a01b039091168152602001610209565b6101fd61039d366004611e02565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61021a610974565b61023e600081565b6101fd6103e4366004611d83565b610983565b6101fd6103f7366004611d83565b610a34565b61023e61040a366004611de9565b610a41565b61029561041d366004611e6b565b610a58565b61023e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610295610457366004611e02565b610bbc565b61023e61046a366004611ede565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61023e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216635a05180f60e01b14806104e157506104e182610c95565b92915050565b6060600580546104f690611f08565b80601f016020809104026020016040519081016040528092919081815260200182805461052290611f08565b801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b6000610586338484610cca565b50600192915050565b600061059c848484610dee565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561063b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106488533858403610cca565b506001949350505050565b60008281526020819052604090206001015461066f8133610ff8565b6106798383611076565b505050565b6000610688611098565b905090565b6001600160a01b038116331461070b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610632565b61071582826111bf565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610586918590610750908690611f53565b610cca565b61077f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361039d565b6107f15760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e7061757365000000000000006064820152608401610632565b6107f96111e1565b565b610715828261127d565b61080f3382611368565b50565b600061081e833361046a565b90508181101561087c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610632565b6108898333848403610cca565b6106798383611368565b6001600160a01b0381166000908152600860205260408120546104e1565b6108db7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361039d565b61094d5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f2070617573650000000000000000006064820152608401610632565b6107f96114c2565b600082815260016020526040812061096d908361154a565b9392505050565b6060600680546104f690611f08565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610a1d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610632565b610a2a3385858403610cca565b5060019392505050565b6000610586338484610dee565b60008181526001602052604081206104e190611556565b83421115610aa85760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610632565b60007f0000000000000000000000000000000000000000000000000000000000000000888888610ad78c611560565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610b3282611588565b90506000610b42828787876115d6565b9050896001600160a01b0316816001600160a01b031614610ba55760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610632565b610bb08a8a8a610cca565b50505050505050505050565b600082815260208190526040902060010154610bd88133610ff8565b61067983836111bf565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610715576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610c3c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061096d836001600160a01b0384166115fe565b60006001600160e01b03198216637965db0b60e01b14806104e157506301ffc9a760e01b6001600160e01b03198316146104e1565b6001600160a01b038316610d2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610632565b6001600160a01b038216610d8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610632565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610632565b6001600160a01b038216610ecc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610632565b610ed783838361164d565b6001600160a01b03831660009081526002602052604090205481811015610f665760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610632565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290610f9d908490611f53565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fe991815260200190565b60405180910390a35b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661071557611034816001600160a01b03166014611658565b61103f836020611658565b604051602001611050929190611f6b565b60408051601f198184030181529082905262461bcd60e51b825261063291600401611d34565b6110808282610be2565b60008281526001602052604090206106799082610c80565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156110f157507f000000000000000000000000000000000000000000000000000000000000000046145b1561111b57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6111c98282611801565b60008281526001602052604090206106799082611880565b60075460ff166112335760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610632565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166112d35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610632565b6112df6000838361164d565b80600460008282546112f19190611f53565b90915550506001600160a01b0382166000908152600260205260408120805483929061131e908490611f53565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166113c85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610632565b6113d48260008361164d565b6001600160a01b038216600090815260026020526040902054818110156114485760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610632565b6001600160a01b0383166000908152600260205260408120838303905560048054849290611477908490611fec565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60075460ff16156115155760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610632565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112603390565b600061096d8383611895565b60006104e1825490565b6001600160a01b03811660009081526008602052604090208054600181018255905b50919050565b60006104e1611595611098565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006115e7878787876118bf565b915091506115f4816119ac565b5095945050505050565b6000818152600183016020526040812054611645575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104e1565b5060006104e1565b610679838383611b67565b60606000611667836002612003565b611672906002611f53565b67ffffffffffffffff81111561168a5761168a612022565b6040519080825280601f01601f1916602001820160405280156116b4576020820181803683370190505b509050600360fc1b816000815181106116cf576116cf612038565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106116fe576116fe612038565b60200101906001600160f81b031916908160001a9053506000611722846002612003565b61172d906001611f53565b90505b60018111156117b2577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061176e5761176e612038565b1a60f81b82828151811061178457611784612038565b60200101906001600160f81b031916908160001a90535060049490941c936117ab8161204e565b9050611730565b50831561096d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610632565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610715576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061096d836001600160a01b038416611b72565b60008260000182815481106118ac576118ac612038565b9060005260206000200154905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118f657506000905060036119a3565b8460ff16601b1415801561190e57508460ff16601c14155b1561191f57506000905060046119a3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611973573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661199c576000600192509250506119a3565b9150600090505b94509492505050565b60008160048111156119c0576119c0612065565b14156119c95750565b60018160048111156119dd576119dd612065565b1415611a2b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610632565b6002816004811115611a3f57611a3f612065565b1415611a8d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610632565b6003816004811115611aa157611aa1612065565b1415611afa5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610632565b6004816004811115611b0e57611b0e612065565b141561080f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610632565b610679838383611c65565b60008181526001830160205260408120548015611c5b576000611b96600183611fec565b8554909150600090611baa90600190611fec565b9050818114611c0f576000866000018281548110611bca57611bca612038565b9060005260206000200154905080876000018481548110611bed57611bed612038565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c2057611c2061207b565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104e1565b60009150506104e1565b60075460ff16156106795760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e7366657220776860448201527f696c6520706175736564000000000000000000000000000000000000000000006064820152608401610632565b600060208284031215611cf057600080fd5b81356001600160e01b03198116811461096d57600080fd5b60005b83811015611d23578181015183820152602001611d0b565b83811115610ff25750506000910152565b6020815260008251806020840152611d53816040850160208701611d08565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611d7e57600080fd5b919050565b60008060408385031215611d9657600080fd5b611d9f83611d67565b946020939093013593505050565b600080600060608486031215611dc257600080fd5b611dcb84611d67565b9250611dd960208501611d67565b9150604084013590509250925092565b600060208284031215611dfb57600080fd5b5035919050565b60008060408385031215611e1557600080fd5b82359150611e2560208401611d67565b90509250929050565b600060208284031215611e4057600080fd5b61096d82611d67565b60008060408385031215611e5c57600080fd5b50508035926020909101359150565b600080600080600080600060e0888a031215611e8657600080fd5b611e8f88611d67565b9650611e9d60208901611d67565b95506040880135945060608801359350608088013560ff81168114611ec157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215611ef157600080fd5b611efa83611d67565b9150611e2560208401611d67565b600181811c90821680611f1c57607f821691505b6020821081141561158257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611f6657611f66611f3d565b500190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611fa3816017850160208801611d08565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351611fe0816028840160208801611d08565b01602801949350505050565b600082821015611ffe57611ffe611f3d565b500390565b600081600019048311821515161561201d5761201d611f3d565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008161205d5761205d611f3d565b506000190190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$j = function isSuperArgs(xs) {
return xs.length > 1;
};
var MintableERC20Permit__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MintableERC20Permit__factory, _ContractFactory);
function MintableERC20Permit__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$j(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$12, _bytecode$j, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MintableERC20Permit__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MintableERC20Permit__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$12);
};
MintableERC20Permit__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$12, signerOrProvider);
};
return MintableERC20Permit__factory;
}(ContractFactory);
MintableERC20Permit__factory.bytecode = _bytecode$j;
MintableERC20Permit__factory.abi = _abi$12;
var _abi$13 = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$k = "0x60806040523480156200001157600080fd5b5060408051808201909152600e81526d697066733a2f2f4261736555524960901b6020820152806200004381620000ba565b506005805460ff191690556200005b600033620000d3565b620000877f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000d3565b620000b37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d3565b5062000311565b8051620000cf9060049060208401906200022e565b5050565b620000cf8282620000f082826200011c60201b62000cb11760201c565b60008281526001602090815260409091206200011791839062000d4f620001bc821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000cf576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001783390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001d3836001600160a01b038416620001dc565b90505b92915050565b60008181526001830160205260408120546200022557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001d6565b506000620001d6565b8280546200023c90620002d4565b90600052602060002090601f016020900481019282620002605760008555620002ab565b82601f106200027b57805160ff1916838001178555620002ab565b82800160010185558215620002ab579182015b82811115620002ab5782518255916020019190600101906200028e565b50620002b9929150620002bd565b5090565b5b80821115620002b95760008155600101620002be565b600181811c90821680620002e957607f821691505b602082108114156200030b57634e487b7160e01b600052602260045260246000fd5b50919050565b612cc480620003216000396000f3fe608060405234801561001057600080fd5b50600436106101a25760003560e01c8063731133e9116100ee578063ca15c87311610097578063e63ab1e911610071578063e63ab1e9146103ac578063e985e9c5146103d3578063f242432a1461040f578063f5298aca1461042257600080fd5b8063ca15c8731461035f578063d539139314610372578063d547741f1461039957600080fd5b806391d14854116100c857806391d148541461030d578063a217fddf14610344578063a22cb4651461034c57600080fd5b8063731133e9146102c75780638456cb59146102da5780639010d07c146102e257600080fd5b80632f2ff15d116101505780634e1273f41161012a5780634e1273f4146102895780635c975abb146102a95780636b20c454146102b457600080fd5b80632f2ff15d1461025b57806336568abe1461026e5780633f4ba83a1461028157600080fd5b80631f7fdffa116101815780631f7fdffa14610210578063248a9ca3146102255780632eb2c2d61461024857600080fd5b8062fdd58e146101a757806301ffc9a7146101cd5780630e89341c146101f0575b600080fd5b6101ba6101b5366004612306565b610435565b6040519081526020015b60405180910390f35b6101e06101db366004612349565b6104e3565b60405190151581526020016101c4565b6102036101fe366004612366565b6104ee565b6040516101c491906123d7565b61022361021e366004612536565b610582565b005b6101ba610233366004612366565b60009081526020819052604090206001015490565b6102236102563660046125cf565b610630565b610223610269366004612679565b6106d2565b61022361027c366004612679565b6106fd565b610223610789565b61029c6102973660046126a5565b61082f565b6040516101c491906127ab565b60055460ff166101e0565b6102236102c23660046127be565b61096d565b6102236102d5366004612832565b6109f2565b610223610a9a565b6102f56102f0366004612887565b610b3e565b6040516001600160a01b0390911681526020016101c4565b6101e061031b366004612679565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101ba600081565b61022361035a3660046128a9565b610b5d565b6101ba61036d366004612366565b610b68565b6101ba7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102236103a7366004612679565b610b7f565b6101ba7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101e06103e13660046128e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61022361041d36600461290f565b610ba5565b610223610430366004612974565b610c2c565b60006001600160a01b0383166104b85760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006104dd82610d64565b6060600480546104fd906129a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610529906129a7565b80156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b50505050509050919050565b6105ac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361031b565b61061e5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016104af565b61062a84848484610da4565b50505050565b6001600160a01b03851633148061064c575061064c85336103e1565b6106be5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f766564000000000000000000000000000060648201526084016104af565b6106cb8585858585610f7a565b5050505050565b6000828152602081905260409020600101546106ee81336111e9565b6106f88383611267565b505050565b6001600160a01b038116331461077b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016104af565b6107858282611289565b5050565b6107b37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361031b565b6108255760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e7061757365000000000060648201526084016104af565b61082d6112ab565b565b606081518351146108a85760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016104af565b6000835167ffffffffffffffff8111156108c4576108c46123ea565b6040519080825280602002602001820160405280156108ed578160200160208202803683370190505b50905060005b845181101561096557610938858281518110610911576109116129e2565b602002602001015185838151811061092b5761092b6129e2565b6020026020010151610435565b82828151811061094a5761094a6129e2565b602090810291909101015261095e81612a0e565b90506108f3565b509392505050565b6001600160a01b038316331480610989575061098983336103e1565b6109e75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106f8838383611347565b610a1c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361031b565b610a8e5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e74000000000000000060648201526084016104af565b61062a84848484611591565b610ac47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361031b565b610b365760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f2070617573650000000000000060648201526084016104af565b61082d6116a3565b6000828152600160205260408120610b56908361172b565b9392505050565b610785338383611737565b60008181526001602052604081206104dd9061182c565b600082815260208190526040902060010154610b9b81336111e9565b6106f88383611289565b6001600160a01b038516331480610bc15750610bc185336103e1565b610c1f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106cb8585858585611836565b6001600160a01b038316331480610c485750610c4883336103e1565b610ca65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016104af565b6106f88383836119d8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610785576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d0b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b56836001600160a01b038416611b55565b60006001600160e01b03198216636cdb3d1360e11b1480610d9557506001600160e01b031982166303a24d0760e21b145b806104dd57506104dd82611ba4565b6001600160a01b038416610e045760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b8151835114610e665760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b33610e7681600087878787611bc9565b60005b8451811015610f1257838181518110610e9457610e946129e2565b602002602001015160026000878481518110610eb257610eb26129e2565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610efa9190612a29565b90915550819050610f0a81612a0e565b915050610e79565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610f63929190612a41565b60405180910390a46106cb81600087878787611bd7565b8151835114610fdc5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b6001600160a01b0384166110405760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b3361104f818787878787611bc9565b60005b845181101561117b57600085828151811061106f5761106f6129e2565b60200260200101519050600085838151811061108d5761108d6129e2565b60209081029190910181015160008481526002835260408082206001600160a01b038e1683529093529190912054909150818110156111215760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016104af565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611160908490612a29565b925050819055505050508061117490612a0e565b9050611052565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516111cb929190612a41565b60405180910390a46111e1818787878787611bd7565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661078557611225816001600160a01b03166014611d8c565b611230836020611d8c565b604051602001611241929190612a6f565b60408051601f198184030181529082905262461bcd60e51b82526104af916004016123d7565b6112718282610cb1565b60008281526001602052604090206106f89082610d4f565b6112938282611f35565b60008281526001602052604090206106f89082611fb4565b60055460ff166112fd5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104af565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166113a95760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b805182511461140b5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016104af565b600033905061142e81856000868660405180602001604052806000815250611bc9565b60005b835181101561153257600084828151811061144e5761144e6129e2565b60200260200101519050600084838151811061146c5761146c6129e2565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156114f95760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016104af565b60009283526002602090815260408085206001600160a01b038b168652909152909220910390558061152a81612a0e565b915050611431565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611583929190612a41565b60405180910390a450505050565b6001600160a01b0384166115f15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b336116118160008761160288611fc9565b61160b88611fc9565b87611bc9565b60008481526002602090815260408083206001600160a01b038916845290915281208054859290611643908490612a29565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46106cb81600087878787612014565b60055460ff16156116f65760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104af565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861132a3390565b6000610b56838361211f565b816001600160a01b0316836001600160a01b031614156117bf5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016104af565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006104dd825490565b6001600160a01b03841661189a5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b336118aa81878761160288611fc9565b60008481526002602090815260408083206001600160a01b038a168452909152902054838110156119305760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016104af565b60008581526002602090815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061196f908490612a29565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46119cf828888888888612014565b50505050505050565b6001600160a01b038316611a3a5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b33611a6981856000611a4b87611fc9565b611a5487611fc9565b60405180602001604052806000815250611bc9565b60008381526002602090815260408083206001600160a01b038816845290915290205482811015611ae85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016104af565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6000818152600183016020526040812054611b9c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104dd565b5060006104dd565b60006001600160e01b03198216635a05180f60e01b14806104dd57506104dd82612149565b6111e186868686868661217e565b6001600160a01b0384163b156111e15760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611c1b9089908990889088908890600401612af0565b602060405180830381600087803b158015611c3557600080fd5b505af1925050508015611c65575060408051601f3d908101601f19168201909252611c6291810190612b4e565b60015b611d1b57611c71612b6b565b806308c379a01415611cab5750611c86612b87565b80611c915750611cad565b8060405162461bcd60e51b81526004016104af91906123d7565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016104af565b6001600160e01b0319811663bc197c8160e01b146119cf5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016104af565b60606000611d9b836002612c11565b611da6906002612a29565b67ffffffffffffffff811115611dbe57611dbe6123ea565b6040519080825280601f01601f191660200182016040528015611de8576020820181803683370190505b509050600360fc1b81600081518110611e0357611e036129e2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e3257611e326129e2565b60200101906001600160f81b031916908160001a9053506000611e56846002612c11565b611e61906001612a29565b90505b6001811115611ee6577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ea257611ea26129e2565b1a60f81b828281518110611eb857611eb86129e2565b60200101906001600160f81b031916908160001a90535060049490941c93611edf81612c30565b9050611e64565b508315610b565760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104af565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610785576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610b56836001600160a01b0384166121f7565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612003576120036129e2565b602090810291909101015292915050565b6001600160a01b0384163b156111e15760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906120589089908990889088908890600401612c47565b602060405180830381600087803b15801561207257600080fd5b505af19250505080156120a2575060408051601f3d908101601f1916820190925261209f91810190612b4e565b60015b6120ae57611c71612b6b565b6001600160e01b0319811663f23a6e6160e01b146119cf5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016104af565b6000826000018281548110612136576121366129e2565b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b14806104dd57506301ffc9a760e01b6001600160e01b03198316146104dd565b60055460ff16156111e15760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c6520706175736564000000000000000000000000000000000000000060648201526084016104af565b600081815260018301602052604081205480156122e057600061221b600183612c8a565b855490915060009061222f90600190612c8a565b905081811461229457600086600001828154811061224f5761224f6129e2565b9060005260206000200154905080876000018481548110612272576122726129e2565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806122a5576122a5612ca1565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104dd565b60009150506104dd565b80356001600160a01b038116811461230157600080fd5b919050565b6000806040838503121561231957600080fd5b612322836122ea565b946020939093013593505050565b6001600160e01b03198116811461234657600080fd5b50565b60006020828403121561235b57600080fd5b8135610b5681612330565b60006020828403121561237857600080fd5b5035919050565b60005b8381101561239a578181015183820152602001612382565b8381111561062a5750506000910152565b600081518084526123c381602086016020860161237f565b601f01601f19169290920160200192915050565b602081526000610b5660208301846123ab565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612426576124266123ea565b6040525050565b600067ffffffffffffffff821115612447576124476123ea565b5060051b60200190565b600082601f83011261246257600080fd5b8135602061246f8261242d565b60405161247c8282612400565b83815260059390931b850182019282810191508684111561249c57600080fd5b8286015b848110156124b757803583529183019183016124a0565b509695505050505050565b600082601f8301126124d357600080fd5b813567ffffffffffffffff8111156124ed576124ed6123ea565b604051612504601f8301601f191660200182612400565b81815284602083860101111561251957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561254c57600080fd5b612555856122ea565b9350602085013567ffffffffffffffff8082111561257257600080fd5b61257e88838901612451565b9450604087013591508082111561259457600080fd5b6125a088838901612451565b935060608701359150808211156125b657600080fd5b506125c3878288016124c2565b91505092959194509250565b600080600080600060a086880312156125e757600080fd5b6125f0866122ea565b94506125fe602087016122ea565b9350604086013567ffffffffffffffff8082111561261b57600080fd5b61262789838a01612451565b9450606088013591508082111561263d57600080fd5b61264989838a01612451565b9350608088013591508082111561265f57600080fd5b5061266c888289016124c2565b9150509295509295909350565b6000806040838503121561268c57600080fd5b8235915061269c602084016122ea565b90509250929050565b600080604083850312156126b857600080fd5b823567ffffffffffffffff808211156126d057600080fd5b818501915085601f8301126126e457600080fd5b813560206126f18261242d565b6040516126fe8282612400565b83815260059390931b850182019282810191508984111561271e57600080fd5b948201945b8386101561274357612734866122ea565b82529482019490820190612723565b9650508601359250508082111561275957600080fd5b5061276685828601612451565b9150509250929050565b600081518084526020808501945080840160005b838110156127a057815187529582019590820190600101612784565b509495945050505050565b602081526000610b566020830184612770565b6000806000606084860312156127d357600080fd5b6127dc846122ea565b9250602084013567ffffffffffffffff808211156127f957600080fd5b61280587838801612451565b9350604086013591508082111561281b57600080fd5b5061282886828701612451565b9150509250925092565b6000806000806080858703121561284857600080fd5b612851856122ea565b93506020850135925060408501359150606085013567ffffffffffffffff81111561287b57600080fd5b6125c3878288016124c2565b6000806040838503121561289a57600080fd5b50508035926020909101359150565b600080604083850312156128bc57600080fd5b6128c5836122ea565b9150602083013580151581146128da57600080fd5b809150509250929050565b600080604083850312156128f857600080fd5b612901836122ea565b915061269c602084016122ea565b600080600080600060a0868803121561292757600080fd5b612930866122ea565b945061293e602087016122ea565b93506040860135925060608601359150608086013567ffffffffffffffff81111561296857600080fd5b61266c888289016124c2565b60008060006060848603121561298957600080fd5b612992846122ea565b95602085013595506040909401359392505050565b600181811c908216806129bb57607f821691505b602082108114156129dc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612a2257612a226129f8565b5060010190565b60008219821115612a3c57612a3c6129f8565b500190565b604081526000612a546040830185612770565b8281036020840152612a668185612770565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612aa781601785016020880161237f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612ae481602884016020880161237f565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a06040830152612b1c60a0830186612770565b8281036060840152612b2e8186612770565b90508281036080840152612b4281856123ab565b98975050505050505050565b600060208284031215612b6057600080fd5b8151610b5681612330565b600060033d1115612b845760046000803e5060005160e01c5b90565b600060443d1015612b955790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612bc557505050505090565b8285019150815181811115612bdd5750505050505090565b843d8701016020828501011115612bf75750505050505090565b612c0660208286010187612400565b509095945050505050565b6000816000190483118215151615612c2b57612c2b6129f8565b500290565b600081612c3f57612c3f6129f8565b506000190190565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612c7f60a08301846123ab565b979650505050505050565b600082821015612c9c57612c9c6129f8565b500390565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$k = function isSuperArgs(xs) {
return xs.length > 1;
};
var MockERC1155__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MockERC1155__factory, _ContractFactory);
function MockERC1155__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$k(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$13, _bytecode$k, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MockERC1155__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MockERC1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$13);
};
MockERC1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$13, signerOrProvider);
};
return MockERC1155__factory;
}(ContractFactory);
MockERC1155__factory.bytecode = _bytecode$k;
MockERC1155__factory.abi = _abi$13;
var _abi$14 = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$l = "0x60806040523480156200001157600080fd5b50604051620033933803806200339383398101604081905262000034916200031c565b60408051808201909152600e81526d697066733a2f2f4261736555524960901b602082015280620000658162000102565b506005805460ff191690556200007d6000336200011b565b620000a97f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200011b565b620000d57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200011b565b50600580546001600160a01b0390921661010002610100600160a81b03199092169190911790556200038b565b80516200011790600490602084019062000276565b5050565b6200011782826200013882826200016460201b62000f811760201c565b60008281526001602090815260409091206200015f9183906200101f62000204821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000117576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001c03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200021b836001600160a01b03841662000224565b90505b92915050565b60008181526001830160205260408120546200026d575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200021e565b5060006200021e565b82805462000284906200034e565b90600052602060002090601f016020900481019282620002a85760008555620002f3565b82601f10620002c357805160ff1916838001178555620002f3565b82800160010185558215620002f3579182015b82811115620002f3578251825591602001919060010190620002d6565b506200030192915062000305565b5090565b5b8082111562000301576000815560010162000306565b6000602082840312156200032f57600080fd5b81516001600160a01b03811681146200034757600080fd5b9392505050565b600181811c908216806200036357607f821691505b602082108114156200038557634e487b7160e01b600052602260045260246000fd5b50919050565b612ff8806200039b6000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c8063731133e9116100f9578063ca15c87311610097578063e63ab1e911610071578063e63ab1e91461041b578063e985e9c514610442578063f242432a1461047e578063f5298aca1461049157600080fd5b8063ca15c873146103ce578063d5391393146103e1578063d547741f1461040857600080fd5b806391d14854116100d357806391d1485414610373578063a217fddf146103aa578063a22cb465146103b2578063c63adb2b146103c557600080fd5b8063731133e91461032d5780638456cb59146103405780639010d07c1461034857600080fd5b80632eb2c2d6116101665780633f4ba83a116101405780633f4ba83a146102e75780634e1273f4146102ef5780635c975abb1461030f5780636b20c4541461031a57600080fd5b80632eb2c2d6146102ae5780632f2ff15d146102c157806336568abe146102d457600080fd5b80631f72d831116101a25780631f72d831146102315780631f7fdffa14610246578063248a9ca3146102595780632a55205a1461027c57600080fd5b8062fdd58e146101c857806301ffc9a7146101ee5780630e89341c14610211575b600080fd5b6101db6101d63660046125d2565b6104a4565b6040519081526020015b60405180910390f35b6102016101fc366004612614565b610552565b60405190151581526020016101e5565b61022461021f366004612631565b61055d565b6040516101e591906126a2565b61024461023f366004612631565b6105f1565b005b610244610254366004612801565b610726565b6101db610267366004612631565b60009081526020819052604090206001015490565b61028f61028a36600461289c565b6107d4565b604080516001600160a01b0390931683526020830191909152016101e5565b6102446102bc3660046128be565b610900565b6102446102cf36600461296c565b6109a2565b6102446102e236600461296c565b6109cd565b610244610a59565b6103026102fd36600461299c565b610aff565b6040516101e59190612aa4565b60055460ff16610201565b610244610328366004612ab7565b610c3d565b61024461033b366004612b2d565b610cc2565b610244610d6a565b61035b61035636600461289c565b610e0e565b6040516001600160a01b0390911681526020016101e5565b61020161038136600461296c565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101db600081565b6102446103c0366004612b84565b610e2d565b6101db60065481565b6101db6103dc366004612631565b610e38565b6101db7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61024461041636600461296c565b610e4f565b6101db7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b610201610450366004612bb7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61024461048c366004612be5565b610e75565b61024461049f366004612c4e565b610efc565b60006001600160a01b0383166105275760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061054c82611034565b60606004805461056c90612c83565b80601f016020809104026020016040519081016040528092919081815260200182805461059890612c83565b80156105e55780601f106105ba576101008083540402835291602001916105e5565b820191906000526020600020905b8154815290600101906020018083116105c857829003601f168201915b50505050509050919050565b600560019054906101000a90046001600160a01b03166001600160a01b031663fd967f476040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106779190612cbe565b81106106eb5760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c657373207460448201527f68616e2031302c30303000000000000000000000000000000000000000000000606482015260840161051e565b60068190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b6107507f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610381565b6107c25760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606482015260840161051e565b6107ce84848484611074565b50505050565b60055460405163f2aab4b360e01b815230600482015260009182916101009091046001600160a01b03169063f2aab4b39060240160206040518083038186803b15801561082057600080fd5b505afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190612cd7565b9150600560019054906101000a90046001600160a01b03166001600160a01b031663fd967f476040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a857600080fd5b505afa1580156108bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e09190612cbe565b6006546108ed9085612d0a565b6108f79190612d29565b90509250929050565b6001600160a01b03851633148061091c575061091c8533610450565b61098e5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000606482015260840161051e565b61099b858585858561124a565b5050505050565b6000828152602081905260409020600101546109be81336114b9565b6109c88383611537565b505050565b6001600160a01b0381163314610a4b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161051e565b610a558282611559565b5050565b610a837f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610381565b610af55760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e70617573650000000000606482015260840161051e565b610afd61157b565b565b60608151835114610b785760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d617463680000000000000000000000000000000000000000000000606482015260840161051e565b6000835167ffffffffffffffff811115610b9457610b946126b5565b604051908082528060200260200182016040528015610bbd578160200160208202803683370190505b50905060005b8451811015610c3557610c08858281518110610be157610be1612d4b565b6020026020010151858381518110610bfb57610bfb612d4b565b60200260200101516104a4565b828281518110610c1a57610c1a612d4b565b6020908102919091010152610c2e81612d61565b9050610bc3565b509392505050565b6001600160a01b038316331480610c595750610c598333610450565b610cb75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161051e565b6109c8838383611617565b610cec7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610381565b610d5e5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e740000000000000000606482015260840161051e565b6107ce84848484611861565b610d947f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610381565b610e065760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20706175736500000000000000606482015260840161051e565b610afd611973565b6000828152600160205260408120610e2690836119fb565b9392505050565b610a55338383611a07565b600081815260016020526040812061054c90611afc565b600082815260208190526040902060010154610e6b81336114b9565b6109c88383611559565b6001600160a01b038516331480610e915750610e918533610450565b610eef5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161051e565b61099b8585858585611b06565b6001600160a01b038316331480610f185750610f188333610450565b610f765760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161051e565b6109c8838383611ca8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610a55576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610fdb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e26836001600160a01b038416611e25565b60006001600160e01b03198216636cdb3d1360e11b148061106557506001600160e01b031982166303a24d0760e21b145b8061054c575061054c82611e74565b6001600160a01b0384166110d45760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161051e565b81518351146111365760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161051e565b3361114681600087878787611e99565b60005b84518110156111e25783818151811061116457611164612d4b565b60200260200101516002600087848151811061118257611182612d4b565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111ca9190612d7c565b909155508190506111da81612d61565b915050611149565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611233929190612d94565b60405180910390a461099b81600087878787611ea7565b81518351146112ac5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161051e565b6001600160a01b0384166113105760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161051e565b3361131f818787878787611e99565b60005b845181101561144b57600085828151811061133f5761133f612d4b565b60200260200101519050600085838151811061135d5761135d612d4b565b60209081029190910181015160008481526002835260408082206001600160a01b038e1683529093529190912054909150818110156113f15760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161051e565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611430908490612d7c565b925050819055505050508061144490612d61565b9050611322565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161149b929190612d94565b60405180910390a46114b1818787878787611ea7565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610a55576114f5816001600160a01b0316601461205c565b61150083602061205c565b604051602001611511929190612dc2565b60408051601f198184030181529082905262461bcd60e51b825261051e916004016126a2565b6115418282610f81565b60008281526001602052604090206109c8908261101f565b6115638282612205565b60008281526001602052604090206109c89082612284565b60055460ff166115cd5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161051e565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166116795760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161051e565b80518251146116db5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161051e565b60003390506116fe81856000868660405180602001604052806000815250611e99565b60005b835181101561180257600084828151811061171e5761171e612d4b565b60200260200101519050600084838151811061173c5761173c612d4b565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156117c95760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161051e565b60009283526002602090815260408085206001600160a01b038b16865290915290922091039055806117fa81612d61565b915050611701565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611853929190612d94565b60405180910390a450505050565b6001600160a01b0384166118c15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161051e565b336118e1816000876118d288612299565b6118db88612299565b87611e99565b60008481526002602090815260408083206001600160a01b038916845290915281208054859290611913908490612d7c565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461099b816000878787876122e4565b60055460ff16156119c65760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161051e565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115fa3390565b6000610e2683836123ef565b816001600160a01b0316836001600160a01b03161415611a8f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c660000000000000000000000000000000000000000000000606482015260840161051e565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600061054c825490565b6001600160a01b038416611b6a5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161051e565b33611b7a8187876118d288612299565b60008481526002602090815260408083206001600160a01b038a16845290915290205483811015611c005760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161051e565b60008581526002602090815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290611c3f908490612d7c565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611c9f8288888888886122e4565b50505050505050565b6001600160a01b038316611d0a5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161051e565b33611d3981856000611d1b87612299565b611d2487612299565b60405180602001604052806000815250611e99565b60008381526002602090815260408083206001600160a01b038816845290915290205482811015611db85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161051e565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6000818152600183016020526040812054611e6c5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561054c565b50600061054c565b60006001600160e01b03198216635a05180f60e01b148061054c575061054c82612419565b6114b186868686868661244e565b6001600160a01b0384163b156114b15760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611eeb9089908990889088908890600401612e43565b602060405180830381600087803b158015611f0557600080fd5b505af1925050508015611f35575060408051601f3d908101601f19168201909252611f3291810190612ea1565b60015b611feb57611f41612ebe565b806308c379a01415611f7b5750611f56612eda565b80611f615750611f7d565b8060405162461bcd60e51b815260040161051e91906126a2565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840161051e565b6001600160e01b0319811663bc197c8160e01b14611c9f5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161051e565b6060600061206b836002612d0a565b612076906002612d7c565b67ffffffffffffffff81111561208e5761208e6126b5565b6040519080825280601f01601f1916602001820160405280156120b8576020820181803683370190505b509050600360fc1b816000815181106120d3576120d3612d4b565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061210257612102612d4b565b60200101906001600160f81b031916908160001a9053506000612126846002612d0a565b612131906001612d7c565b90505b60018111156121b6577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061217257612172612d4b565b1a60f81b82828151811061218857612188612d4b565b60200101906001600160f81b031916908160001a90535060049490941c936121af81612f64565b9050612134565b508315610e265760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161051e565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610a55576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e26836001600160a01b0384166124c7565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106122d3576122d3612d4b565b602090810291909101015292915050565b6001600160a01b0384163b156114b15760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906123289089908990889088908890600401612f7b565b602060405180830381600087803b15801561234257600080fd5b505af1925050508015612372575060408051601f3d908101601f1916820190925261236f91810190612ea1565b60015b61237e57611f41612ebe565b6001600160e01b0319811663f23a6e6160e01b14611c9f5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161051e565b600082600001828154811061240657612406612d4b565b9060005260206000200154905092915050565b60006001600160e01b03198216637965db0b60e01b148061054c57506301ffc9a760e01b6001600160e01b031983161461054c565b60055460ff16156114b15760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c65207061757365640000000000000000000000000000000000000000606482015260840161051e565b600081815260018301602052604081205480156125b05760006124eb600183612fbe565b85549091506000906124ff90600190612fbe565b905081811461256457600086600001828154811061251f5761251f612d4b565b906000526020600020015490508087600001848154811061254257612542612d4b565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061257557612575612fd5565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061054c565b600091505061054c565b6001600160a01b03811681146125cf57600080fd5b50565b600080604083850312156125e557600080fd5b82356125f0816125ba565b946020939093013593505050565b6001600160e01b0319811681146125cf57600080fd5b60006020828403121561262657600080fd5b8135610e26816125fe565b60006020828403121561264357600080fd5b5035919050565b60005b8381101561266557818101518382015260200161264d565b838111156107ce5750506000910152565b6000815180845261268e81602086016020860161264a565b601f01601f19169290920160200192915050565b602081526000610e266020830184612676565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156126f1576126f16126b5565b6040525050565b600067ffffffffffffffff821115612712576127126126b5565b5060051b60200190565b600082601f83011261272d57600080fd5b8135602061273a826126f8565b60405161274782826126cb565b83815260059390931b850182019282810191508684111561276757600080fd5b8286015b84811015612782578035835291830191830161276b565b509695505050505050565b600082601f83011261279e57600080fd5b813567ffffffffffffffff8111156127b8576127b86126b5565b6040516127cf601f8301601f1916602001826126cb565b8181528460208386010111156127e457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561281757600080fd5b8435612822816125ba565b9350602085013567ffffffffffffffff8082111561283f57600080fd5b61284b8883890161271c565b9450604087013591508082111561286157600080fd5b61286d8883890161271c565b9350606087013591508082111561288357600080fd5b506128908782880161278d565b91505092959194509250565b600080604083850312156128af57600080fd5b50508035926020909101359150565b600080600080600060a086880312156128d657600080fd5b85356128e1816125ba565b945060208601356128f1816125ba565b9350604086013567ffffffffffffffff8082111561290e57600080fd5b61291a89838a0161271c565b9450606088013591508082111561293057600080fd5b61293c89838a0161271c565b9350608088013591508082111561295257600080fd5b5061295f8882890161278d565b9150509295509295909350565b6000806040838503121561297f57600080fd5b823591506020830135612991816125ba565b809150509250929050565b600080604083850312156129af57600080fd5b823567ffffffffffffffff808211156129c757600080fd5b818501915085601f8301126129db57600080fd5b813560206129e8826126f8565b6040516129f582826126cb565b83815260059390931b8501820192828101915089841115612a1557600080fd5b948201945b83861015612a3c578535612a2d816125ba565b82529482019490820190612a1a565b96505086013592505080821115612a5257600080fd5b50612a5f8582860161271c565b9150509250929050565b600081518084526020808501945080840160005b83811015612a9957815187529582019590820190600101612a7d565b509495945050505050565b602081526000610e266020830184612a69565b600080600060608486031215612acc57600080fd5b8335612ad7816125ba565b9250602084013567ffffffffffffffff80821115612af457600080fd5b612b008783880161271c565b93506040860135915080821115612b1657600080fd5b50612b238682870161271c565b9150509250925092565b60008060008060808587031215612b4357600080fd5b8435612b4e816125ba565b93506020850135925060408501359150606085013567ffffffffffffffff811115612b7857600080fd5b6128908782880161278d565b60008060408385031215612b9757600080fd5b8235612ba2816125ba565b91506020830135801515811461299157600080fd5b60008060408385031215612bca57600080fd5b8235612bd5816125ba565b91506020830135612991816125ba565b600080600080600060a08688031215612bfd57600080fd5b8535612c08816125ba565b94506020860135612c18816125ba565b93506040860135925060608601359150608086013567ffffffffffffffff811115612c4257600080fd5b61295f8882890161278d565b600080600060608486031215612c6357600080fd5b8335612c6e816125ba565b95602085013595506040909401359392505050565b600181811c90821680612c9757607f821691505b60208210811415612cb857634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612cd057600080fd5b5051919050565b600060208284031215612ce957600080fd5b8151610e26816125ba565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612d2457612d24612cf4565b500290565b600082612d4657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612d7557612d75612cf4565b5060010190565b60008219821115612d8f57612d8f612cf4565b500190565b604081526000612da76040830185612a69565b8281036020840152612db98185612a69565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612dfa81601785016020880161264a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612e3781602884016020880161264a565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a06040830152612e6f60a0830186612a69565b8281036060840152612e818186612a69565b90508281036080840152612e958185612676565b98975050505050505050565b600060208284031215612eb357600080fd5b8151610e26816125fe565b600060033d1115612ed75760046000803e5060005160e01c5b90565b600060443d1015612ee85790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612f1857505050505090565b8285019150815181811115612f305750505050505090565b843d8701016020828501011115612f4a5750505050505090565b612f59602082860101876126cb565b509095945050505050565b600081612f7357612f73612cf4565b506000190190565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612fb360a0830184612676565b979650505050505050565b600082821015612fd057612fd0612cf4565b500390565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$l = function isSuperArgs(xs) {
return xs.length > 1;
};
var MockERC1155Royalty__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MockERC1155Royalty__factory, _ContractFactory);
function MockERC1155Royalty__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$l(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$14, _bytecode$l, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MockERC1155Royalty__factory.prototype;
_proto.deploy = function deploy(_controlCenter, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MockERC1155Royalty__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$14);
};
MockERC1155Royalty__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$14, signerOrProvider);
};
return MockERC1155Royalty__factory;
}(ContractFactory);
MockERC1155Royalty__factory.bytecode = _bytecode$l;
MockERC1155Royalty__factory.abi = _abi$14;
var _abi$15 = [{
inputs: [{
internalType: "address",
name: "_addy",
type: "address"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
inputs: [],
name: "attack",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_onReceive",
type: "bool"
}],
name: "setAttackOnReceive",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$m = "0x608060405234801561001057600080fd5b5060405161070038038061070083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61066d806100936000396000f3fe6080604052600436106100385760003560e01c8063150b7a02146101305780639e5faafc14610185578063b7991a841461019a57600080fd5b3661012b57600054600160a01b900460ff161561012957604080516000808252602082019092529054610126906001600160a01b0316632f52ebb760e01b61008560018560448101610476565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050670de0b6b3a76400006040518060400160405280600681526020017f4641494c454400000000000000000000000000000000000000000000000000008152506101ee565b50505b005b600080fd5b34801561013c57600080fd5b5061015061014b3660046104e3565b610332565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b34801561019157600080fd5b5061012961038e565b3480156101a657600080fd5b506101296101b53660046105bf565b60008054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60608247101561026b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b843b6102b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610262565b600080866001600160a01b031685876040516102d59190610611565b60006040518083038185875af1925050503d8060008114610312576040519150601f19603f3d011682016040523d82523d6000602084013e610317565b606091505b5091509150610327828286610420565b979650505050505050565b60008054600160a01b900460ff1661037d5760408051600080825260208201909252905461037a906001600160a01b0316632f52ebb760e01b61008560018560448101610476565b50505b50630a85bd0160e11b949350505050565b67d02ab486cedc00004710156103e65760405162461bcd60e51b815260206004820152600860248201527f3e3d2031356574680000000000000000000000000000000000000000000000006044820152606401610262565b60408051600080825260208201909252905461041c906001600160a01b0316632f52ebb760e01b61008560018560448101610476565b5050565b6060831561042f575081610459565b82511561043f5782518084602001fd5b8160405162461bcd60e51b8152600401610262919061062d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006040820160ff851683526020604081850152818551808452606086019150828701935060005b818110156104ba5784518352938301939183019160010161049e565b5090979650505050505050565b80356001600160a01b03811681146104de57600080fd5b919050565b600080600080608085870312156104f957600080fd5b610502856104c7565b9350610510602086016104c7565b925060408501359150606085013567ffffffffffffffff8082111561053457600080fd5b818701915087601f83011261054857600080fd5b81358181111561055a5761055a610460565b604051601f8201601f19908116603f0116810190838211818310171561058257610582610460565b816040528281528a602084870101111561059b57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000602082840312156105d157600080fd5b8135801515811461045957600080fd5b60005b838110156105fc5781810151838201526020016105e4565b8381111561060b576000848401525b50505050565b600082516106238184602087016105e1565b9190910192915050565b602081526000825180602084015261064c8160408501602087016105e1565b601f01601f1916919091016040019291505056fea164736f6c6343000809000a";
var isSuperArgs$m = function isSuperArgs(xs) {
return xs.length > 1;
};
var MockLazyNFTReentrant__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MockLazyNFTReentrant__factory, _ContractFactory);
function MockLazyNFTReentrant__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$m(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$15, _bytecode$m, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MockLazyNFTReentrant__factory.prototype;
_proto.deploy = function deploy(_addy, overrides) {
return _ContractFactory.prototype.deploy.call(this, _addy, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_addy, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _addy, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MockLazyNFTReentrant__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$15);
};
MockLazyNFTReentrant__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$15, signerOrProvider);
};
return MockLazyNFTReentrant__factory;
}(ContractFactory);
MockLazyNFTReentrant__factory.bytecode = _bytecode$m;
MockLazyNFTReentrant__factory.abi = _abi$15;
var _abi$16 = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "address[]",
name: "payees",
type: "address[]"
}, {
internalType: "uint256[]",
name: "shares_",
type: "uint256[]"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "ERC20PaymentReleased",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}],
name: "PayeeAdded",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReleased",
type: "event"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "payee",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "payeeCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "shares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalShares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$n = "0x60806040523480156200001157600080fd5b50604051620019d6380380620019d68339810160408190526200003491620005d7565b600780546001600160a01b0319166001600160a01b0386161790558051825114620000cc5760405162461bcd60e51b815260206004820152603660248201527f526f79616c74793a20756e657175616c206e756d626572206f6620706179656560448201527f7320616e64207368617265732070726f76696465642e0000000000000000000060648201526084015b60405180910390fd5b60008251116200011f5760405162461bcd60e51b815260206004820152601c60248201527f526f79616c74793a206e6f207061796565732070726f76696465642e000000006044820152606401620000c3565b825162000134906009906020860190620003c9565b50600880546001600160a01b0319166001600160a01b03871617905560005b8251811015620001d157600082828151811062000174576200017462000711565b60200260200101516127106200018b91906200073d565b9050620001bb848381518110620001a657620001a662000711565b602002602001015182620001dd60201b60201c565b5080620001c8816200075f565b91505062000153565b505050505050620007d5565b6001600160a01b0382166200024a5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401620000c3565b600081116200029c5760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401620000c3565b6001600160a01b03821660009081526002602052604090205415620003185760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401620000c3565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b038416908117909155600090815260026020526040812082905554620003809082906200077d565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b828054620003d79062000798565b90600052602060002090601f016020900481019282620003fb576000855562000446565b82601f106200041657805160ff191683800117855562000446565b8280016001018555821562000446579182015b828111156200044657825182559160200191906001019062000429565b506200045492915062000458565b5090565b5b8082111562000454576000815560010162000459565b6001600160a01b03811681146200048557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620004c957620004c962000488565b604052919050565b60006001600160401b03821115620004ed57620004ed62000488565b5060051b60200190565b600082601f8301126200050957600080fd5b81516020620005226200051c83620004d1565b6200049e565b82815260059290921b840181019181810190868411156200054257600080fd5b8286015b848110156200056a5780516200055c816200046f565b835291830191830162000546565b509695505050505050565b600082601f8301126200058757600080fd5b815160206200059a6200051c83620004d1565b82815260059290921b84018101918181019086841115620005ba57600080fd5b8286015b848110156200056a5780518352918301918301620005be565b600080600080600060a08688031215620005f057600080fd5b8551620005fd816200046f565b8095505060208087015162000612816200046f565b60408801519095506001600160401b03808211156200063057600080fd5b818901915089601f8301126200064557600080fd5b8151818111156200065a576200065a62000488565b6200066e601f8201601f191685016200049e565b8181528b858386010111156200068357600080fd5b60005b82811015620006a357848101860151828201870152850162000686565b82811115620006b55760008684840101525b5060608b015190975093505080831115620006cf57600080fd5b620006dd8a848b01620004f7565b94506080890151925080831115620006f457600080fd5b5050620007048882890162000575565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200075a576200075a62000727565b500290565b600060001982141562000776576200077662000727565b5060010190565b6000821982111562000793576200079362000727565b500190565b600181811c90821680620007ad57607f821691505b60208210811415620007cf57634e487b7160e01b600052602260045260246000fd5b50919050565b6111f180620007e56000396000f3fe6080604052600436106100eb5760003560e01c80638b83209b1161008a578063d79779b211610059578063d79779b214610324578063e33b7de31461035a578063e4fc6b6d1461036f578063e8a3d4851461038457600080fd5b80638b83209b14610260578063938e3d7b146102985780639852595c146102b8578063ce7c2ac2146102ee57600080fd5b8063406072a9116100c6578063406072a91461019b57806348b75044146101e1578063572b6c051461020157806363453ae11461024057600080fd5b8062dbe1091461014057806319165587146101645780633a98ef391461018657600080fd5b3661013b577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706101196103a6565b604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561014c57600080fd5b506004545b6040519081526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004610f57565b6103b5565b005b34801561019257600080fd5b50600054610151565b3480156101a757600080fd5b506101516101b6366004610f74565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156101ed57600080fd5b506101846101fc366004610f74565b61056b565b34801561020d57600080fd5b5061023061021c366004610f57565b6007546001600160a01b0391821691161490565b604051901515815260200161015b565b34801561024c57600080fd5b5061018461025b366004610f57565b6107d6565b34801561026c57600080fd5b5061028061027b366004610fad565b61082a565b6040516001600160a01b03909116815260200161015b565b3480156102a457600080fd5b506101846102b3366004610fc6565b61085a565b3480156102c457600080fd5b506101516102d3366004610f57565b6001600160a01b031660009081526003602052604090205490565b3480156102fa57600080fd5b50610151610309366004610f57565b6001600160a01b031660009081526002602052604090205490565b34801561033057600080fd5b5061015161033f366004610f57565b6001600160a01b031660009081526005602052604090205490565b34801561036657600080fd5b50600154610151565b34801561037b57600080fd5b506101846109ff565b34801561039057600080fd5b50610399610a51565b60405161015b9190611068565b60006103b0610ae3565b905090565b6001600160a01b03811660009081526002602052604090205461042e5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b600061043960015490565b61044390476110b1565b90506000610470838361046b866001600160a01b031660009081526003602052604090205490565b610b0b565b9050806104d35760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610425565b6001600160a01b038316600090815260036020526040812080548392906104fb9084906110b1565b92505081905550806001600082825461051491906110b1565b9091555061052490508382610b50565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b6001600160a01b0381166000908152600260205260409020546105df5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608401610425565b6001600160a01b0382166000908152600560205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561063757600080fd5b505afa15801561064b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066f91906110c9565b61067991906110b1565b905060006106b2838361046b87876001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b9050806107155760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610425565b6001600160a01b0380851660009081526006602090815260408083209387168352929052908120805483929061074c9084906110b1565b90915550506001600160a01b038416600090815260056020526040812080548392906107799084906110b1565b9091555061078a9050848483610c69565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60005b6004548110156108265761081482600483815481106107fa576107fa6110e2565b6000918252602090912001546001600160a01b031661056b565b8061081e816110f8565b9150506107d9565b5050565b60006004828154811061083f5761083f6110e2565b6000918252602090912001546001600160a01b031692915050565b6008546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df91906110c9565b6108e76103a6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b0316602482015260440160206040518083038186803b15801561094457600080fd5b505afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c9190611113565b6109ee5760405162461bcd60e51b815260206004820152603660248201527f526f79616c74793a206f6e6c7920612070726f746f636f6c2061646d696e206360448201527f616e2063616c6c20746869732066756e6374696f6e2e000000000000000000006064820152608401610425565b6109fa60098383610ea9565b505050565b60005b600454811015610a4e57610a3c60048281548110610a2257610a226110e2565b6000918252602090912001546001600160a01b03166103b5565b80610a46816110f8565b915050610a02565b50565b606060098054610a6090611135565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8c90611135565b8015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050505050905090565b6007546000906001600160a01b0316331415610b06575060131936013560601c90565b503390565b600080546001600160a01b038516825260026020526040822054839190610b329086611170565b610b3c919061118f565b610b4691906111b1565b90505b9392505050565b80471015610ba05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610425565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610bed576040519150601f19603f3d011682016040523d82523d6000602084013e610bf2565b606091505b50509050806109fa5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610425565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109fa92869291600091610d0e918516908490610d9e565b8051909150156109fa5780806020019051810190610d2c9190611113565b6109fa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610425565b6060610b46848460008585843b610df75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610425565b600080866001600160a01b03168587604051610e1391906111c8565b60006040518083038185875af1925050503d8060008114610e50576040519150601f19603f3d011682016040523d82523d6000602084013e610e55565b606091505b5091509150610e65828286610e70565b979650505050505050565b60608315610e7f575081610b49565b825115610e8f5782518084602001fd5b8160405162461bcd60e51b81526004016104259190611068565b828054610eb590611135565b90600052602060002090601f016020900481019282610ed75760008555610f1d565b82601f10610ef05782800160ff19823516178555610f1d565b82800160010185558215610f1d579182015b82811115610f1d578235825591602001919060010190610f02565b50610f29929150610f2d565b5090565b5b80821115610f295760008155600101610f2e565b6001600160a01b0381168114610a4e57600080fd5b600060208284031215610f6957600080fd5b8135610b4981610f42565b60008060408385031215610f8757600080fd5b8235610f9281610f42565b91506020830135610fa281610f42565b809150509250929050565b600060208284031215610fbf57600080fd5b5035919050565b60008060208385031215610fd957600080fd5b823567ffffffffffffffff80821115610ff157600080fd5b818501915085601f83011261100557600080fd5b81358181111561101457600080fd5b86602082850101111561102657600080fd5b60209290920196919550909350505050565b60005b8381101561105357818101518382015260200161103b565b83811115611062576000848401525b50505050565b6020815260008251806020840152611087816040850160208701611038565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b600082198211156110c4576110c461109b565b500190565b6000602082840312156110db57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561110c5761110c61109b565b5060010190565b60006020828403121561112557600080fd5b81518015158114610b4957600080fd5b600181811c9082168061114957607f821691505b6020821081141561116a57634e487b7160e01b600052602260045260246000fd5b50919050565b600081600019048311821515161561118a5761118a61109b565b500290565b6000826111ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156111c3576111c361109b565b500390565b600082516111da818460208701611038565b919091019291505056fea164736f6c6343000809000a";
var isSuperArgs$n = function isSuperArgs(xs) {
return xs.length > 1;
};
var MockRoyaltyNoFees__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MockRoyaltyNoFees__factory, _ContractFactory);
function MockRoyaltyNoFees__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$n(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$16, _bytecode$n, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MockRoyaltyNoFees__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MockRoyaltyNoFees__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$16);
};
MockRoyaltyNoFees__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$16, signerOrProvider);
};
return MockRoyaltyNoFees__factory;
}(ContractFactory);
MockRoyaltyNoFees__factory.bytecode = _bytecode$n;
MockRoyaltyNoFees__factory.abi = _abi$16;
var _abi$17 = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
inputs: [{
internalType: "address payable",
name: "_royalty",
type: "address"
}],
name: "set",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$o = "0x608060405234801561001057600080fd5b50610142806100206000396000f3fe6080604052600436106100225760003560e01c80632801617e1461009457600080fd5b3661008f57600080546040805163e4fc6b6d60e01b8152905173ffffffffffffffffffffffffffffffffffffffff9092169263e4fc6b6d9260048084019382900301818387803b15801561007557600080fd5b505af1158015610089573d6000803e3d6000fd5b50505050005b600080fd5b3480156100a057600080fd5b506100f66100af3660046100f8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b60006020828403121561010a57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461012e57600080fd5b939250505056fea164736f6c6343000809000a";
var isSuperArgs$o = function isSuperArgs(xs) {
return xs.length > 1;
};
var MockRoyaltyReentrantDistribute__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(MockRoyaltyReentrantDistribute__factory, _ContractFactory);
function MockRoyaltyReentrantDistribute__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$o(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$17, _bytecode$o, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = MockRoyaltyReentrantDistribute__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
MockRoyaltyReentrantDistribute__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$17);
};
MockRoyaltyReentrantDistribute__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$17, signerOrProvider);
};
return MockRoyaltyReentrantDistribute__factory;
}(ContractFactory);
MockRoyaltyReentrantDistribute__factory.bytecode = _bytecode$o;
MockRoyaltyReentrantDistribute__factory.abi = _abi$17;
var _abi$18 = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "spender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Approval",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "Deposit",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "Transfer",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "Withdrawal",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "spender",
type: "address"
}],
name: "allowance",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "approve",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "decimals",
outputs: [{
internalType: "uint8",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "subtractedValue",
type: "uint256"
}],
name: "decreaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "deposit",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "spender",
type: "address"
}, {
internalType: "uint256",
name: "addedValue",
type: "uint256"
}],
name: "increaseAllowance",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "symbol",
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: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transfer",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "sender",
type: "address"
}, {
internalType: "address",
name: "recipient",
type: "address"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "transferFrom",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "withdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$p = "0x60806040523480156200001157600080fd5b50604080518082018252600d81526c2bb930b83832b21022ba3432b960991b6020808301918252835180850190945260048452630ae8aa8960e31b908401528151919291620000639160039162000082565b5080516200007990600490602084019062000082565b50505062000165565b828054620000909062000128565b90600052602060002090601f016020900481019282620000b45760008555620000ff565b82601f10620000cf57805160ff1916838001178555620000ff565b82800160010185558215620000ff579182015b82811115620000ff578251825591602001919060010190620000e2565b506200010d92915062000111565b5090565b5b808211156200010d576000815560010162000112565b600181811c908216806200013d57607f821691505b602082108114156200015f57634e487b7160e01b600052602260045260246000fd5b50919050565b610ce680620001756000396000f3fe6080604052600436106100d25760003560e01c8063395093511161007f578063a457c2d711610059578063a457c2d714610218578063a9059cbb14610238578063d0e30db014610258578063dd62ed3e1461026057600080fd5b806339509351146101ad57806370a08231146101cd57806395d89b411461020357600080fd5b806323b872dd116100b057806323b872dd1461014f5780632e1a7d4d1461016f578063313ce5671461019157600080fd5b806306fdde03146100d7578063095ea7b31461010257806318160ddd14610132575b600080fd5b3480156100e357600080fd5b506100ec6102a6565b6040516100f99190610b14565b60405180910390f35b34801561010e57600080fd5b5061012261011d366004610b85565b610338565b60405190151581526020016100f9565b34801561013e57600080fd5b50475b6040519081526020016100f9565b34801561015b57600080fd5b5061012261016a366004610baf565b61034e565b34801561017b57600080fd5b5061018f61018a366004610beb565b610412565b005b34801561019d57600080fd5b50604051601281526020016100f9565b3480156101b957600080fd5b506101226101c8366004610b85565b610482565b3480156101d957600080fd5b506101416101e8366004610c04565b6001600160a01b031660009081526020819052604090205490565b34801561020f57600080fd5b506100ec6104be565b34801561022457600080fd5b50610122610233366004610b85565b6104cd565b34801561024457600080fd5b50610122610253366004610b85565b61057e565b61018f61058b565b34801561026c57600080fd5b5061014161027b366004610c26565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102b590610c59565b80601f01602080910402602001604051908101604052809291908181526020018280546102e190610c59565b801561032e5780601f106103035761010080835404028352916020019161032e565b820191906000526020600020905b81548152906001019060200180831161031157829003601f168201915b5050505050905090565b60006103453384846105cc565b50600192915050565b600061035b8484846106f1565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103fa5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61040785338584036105cc565b506001949350505050565b61041c33826108ef565b604051339082156108fc029083906000818181858888f19350505050158015610449573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916103459185906104b9908690610caa565b6105cc565b6060600480546102b590610c59565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156105675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016103f1565b61057433858584036105cc565b5060019392505050565b60006103453384846106f1565b6105953334610a35565b60405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b6001600160a01b03831661062e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f1565b6001600160a01b03821661068f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661076d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103f1565b6001600160a01b0382166107cf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f1565b6001600160a01b0383166000908152602081905260409020548181101561085e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103f1565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610895908490610caa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108e191815260200190565b60405180910390a350505050565b6001600160a01b03821661094f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103f1565b6001600160a01b038216600090815260208190526040902054818110156109c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103f1565b6001600160a01b03831660009081526020819052604081208383039055600280548492906109f2908490610cc2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016106e4565b6001600160a01b038216610a8b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103f1565b8060026000828254610a9d9190610caa565b90915550506001600160a01b03821660009081526020819052604081208054839290610aca908490610caa565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b81811015610b4157858101830151858201604001528201610b25565b81811115610b53576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610b8057600080fd5b919050565b60008060408385031215610b9857600080fd5b610ba183610b69565b946020939093013593505050565b600080600060608486031215610bc457600080fd5b610bcd84610b69565b9250610bdb60208501610b69565b9150604084013590509250925092565b600060208284031215610bfd57600080fd5b5035919050565b600060208284031215610c1657600080fd5b610c1f82610b69565b9392505050565b60008060408385031215610c3957600080fd5b610c4283610b69565b9150610c5060208401610b69565b90509250929050565b600181811c90821680610c6d57607f821691505b60208210811415610c8e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610cbd57610cbd610c94565b500190565b600082821015610cd457610cd4610c94565b50039056fea164736f6c6343000809000a";
var isSuperArgs$p = function isSuperArgs(xs) {
return xs.length > 1;
};
var WETH9__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(WETH9__factory, _ContractFactory);
function WETH9__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$p(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$18, _bytecode$p, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = WETH9__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
WETH9__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$18);
};
WETH9__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$18, signerOrProvider);
};
return WETH9__factory;
}(ContractFactory);
WETH9__factory.bytecode = _bytecode$p;
WETH9__factory.abi = _abi$18;
var _abi$19 = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
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: "creator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "tokenURI",
type: "string"
}],
name: "Minted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "tokenIds",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "tokenURI",
type: "string[]"
}],
name: "MintedBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "_contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "creator",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "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: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}],
name: "mint",
outputs: [],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_to",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
name: "mintNFT",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_to",
type: "address"
}, {
internalType: "string[]",
name: "_uris",
type: "string[]"
}],
name: "mintNFTBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "nftURI",
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: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "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: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$q = "0x60806040523480156200001157600080fd5b50604051620040eb380380620040eb83398101604081905262000034916200061f565b82858584828281600290805190602001906200005292919062000493565b5080516200006890600390602084019062000493565b5050600c805460ff191690555080516200008a90600e90602084019062000493565b50620000a160006200009b620001b8565b620001d4565b620000d07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200009b620001b8565b620000ff7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200009b620001b8565b5050600f80546001600160a01b03199081166001600160a01b039485161790915560118054909116928916929092179091555081516200014790601390602085019062000493565b5062000152620001b8565b601080546001600160a01b0319166001600160a01b0392909216919091179055620001a17f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200009b620001b8565b620001ac81620001e4565b50505050505062000721565b6000620001cf620002ee60201b62001b911760201c565b905090565b620001e0828262000327565b5050565b620001fa6000620001f4620001b8565b6200036a565b6200024c5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c650000000000000000000060448201526064015b60405180910390fd5b612710811115620002b35760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c6573732074604482015269068616e2031302c3030360b41b606482015260840162000243565b60168190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b600f546000906001600160a01b031633141562000312575060131936013560601c90565b620001cf6200039560201b62001bb91760201c565b6200033e82826200039960201b62001bbd1760201c565b60008281526001602090815260409091206200036591839062001c5c62000423821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b620003a582826200036a565b620001e0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003df620001b8565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200043a836001600160a01b03841662000441565b9392505050565b60008181526001830160205260408120546200048a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200038f565b5060006200038f565b828054620004a190620006e4565b90600052602060002090601f016020900481019282620004c5576000855562000510565b82601f10620004e057805160ff191683800117855562000510565b8280016001018555821562000510579182015b8281111562000510578251825591602001919060010190620004f3565b506200051e92915062000522565b5090565b5b808211156200051e576000815560010162000523565b6001600160a01b03811681146200054f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200057a57600080fd5b81516001600160401b038082111562000597576200059762000552565b604051601f8301601f19908116603f01168101908282118183101715620005c257620005c262000552565b81604052838152602092508683858801011115620005df57600080fd5b600091505b83821015620006035785820183015181830184015290820190620005e4565b83821115620006155760008385830101525b9695505050505050565b60008060008060008060c087890312156200063957600080fd5b8651620006468162000539565b60208801519096506001600160401b03808211156200066457600080fd5b620006728a838b0162000568565b965060408901519150808211156200068957600080fd5b620006978a838b0162000568565b955060608901519150620006ab8262000539565b608089015191945080821115620006c157600080fd5b50620006d089828a0162000568565b92505060a087015190509295509295509295565b600181811c90821680620006f957607f821691505b602082108114156200071b57634e487b7160e01b600052602260045260246000fd5b50919050565b6139ba80620007316000396000f3fe608060405234801561001057600080fd5b506004361061032b5760003560e01c806370a08231116101b2578063ac9650d8116100f9578063d5391393116100a2578063e8a3d4851161007c578063e8a3d4851461071b578063e985e9c514610723578063eacabe141461075f578063efe476871461077257600080fd5b8063d5391393146106ba578063d547741f146106e1578063e63ab1e9146106f457600080fd5b8063c63adb2b116100d3578063c63adb2b1461068b578063c87b56dd14610694578063ca15c873146106a757600080fd5b8063ac9650d814610650578063b88d4fde14610670578063c0e727401461068357600080fd5b80639010d07c1161015b57806395d89b411161013557806395d89b411461062d578063a217fddf14610635578063a22cb4651461063d57600080fd5b80639010d07c146105d057806391d14854146105e3578063938e3d7b1461061a57600080fd5b80638456cb591161018c5780638456cb59146105ad5780638ba448c2146105b55780638da5cb5b146105c857600080fd5b806370a082311461057d57806375794a3c146105905780638423df791461059957600080fd5b80632f745c59116102765780634f6ccce71161021f5780635c975abb116101f95780635c975abb1461054c5780636352211e146105575780636a6278421461056a57600080fd5b80634f6ccce7146104ee578063510b515814610501578063572b6c051461052a57600080fd5b806342842e0e1161025057806342842e0e146104b557806342966c68146104c857806349a33a2f146104db57600080fd5b80632f745c591461048757806336568abe1461049a5780633f4ba83a146104ad57600080fd5b80631f72d831116102d8578063248a9ca3116102b2578063248a9ca31461041f5780632a55205a146104425780632f2ff15d1461047457600080fd5b80631f72d831146103d2578063206b60f9146103e557806323b872dd1461040c57600080fd5b8063095ea7b311610309578063095ea7b31461039857806313af4035146103ad57806318160ddd146103c057600080fd5b806301ffc9a71461033057806306fdde0314610358578063081812fc1461036d575b600080fd5b61034361033e3660046130e0565b610785565b60405190151581526020015b60405180910390f35b6103606107b1565b60405161034f9190613155565b61038061037b366004613168565b610843565b6040516001600160a01b03909116815260200161034f565b6103ab6103a6366004613196565b6108dd565b005b6103ab6103bb3660046131c2565b610a05565b600a545b60405190815260200161034f565b6103ab6103e0366004613168565b610b3f565b6103c47f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b6103ab61041a3660046131df565b610c45565b6103c461042d366004613168565b60009081526020819052604090206001015490565b610455610450366004613220565b610cd3565b604080516001600160a01b03909316835260208301919091520161034f565b6103ab610482366004613242565b610d7a565b6103c4610495366004613196565b610da7565b6103ab6104a8366004613242565b610e4f565b6103ab610eeb565b6103ab6104c33660046131df565b610f95565b6103ab6104d6366004613168565b610fb0565b6103ab6104e93660046132be565b611039565b6103c46104fc366004613168565b611270565b61038061050f366004613168565b6015602052600090815260409020546001600160a01b031681565b6103436105383660046131c2565b600f546001600160a01b0391821691161490565b600c5460ff16610343565b610380610565366004613168565b611314565b6103ab6105783660046131c2565b61139f565b6103c461058b3660046131c2565b6113e7565b6103c460125481565b600f5461034390600160a01b900460ff1681565b6103ab611481565b6103ab6105c3366004613328565b611527565b6103806115e1565b6103806105de366004613220565b61163a565b6103436105f1366004613242565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103ab610628366004613385565b611659565b6103606116b7565b6103c4600081565b6103ab61064b3660046133c7565b6116c6565b61066361065e3660046133f3565b6116d8565b60405161034f9190613429565b6103ab61067e3660046134a1565b6117cd565b610360611862565b6103c460165481565b6103606106a2366004613168565b6118f0565b6103c46106b5366004613168565b611992565b6103c47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103ab6106ef366004613242565b6119a9565b6103c47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6103606119d1565b610343610731366004613581565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103ab61076d3660046135af565b6119e0565b610360610780366004613168565b611b78565b600061079082611c71565b806107ab57506001600160e01b0319821663152a902d60e11b145b92915050565b6060600280546107c0906135f7565b80601f01602080910402602001604051908101604052809291908181526020018280546107ec906135f7565b80156108395780601f1061080e57610100808354040283529160200191610839565b820191906000526020600020905b81548152906001019060200180831161081c57829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166108c15760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006108e882611314565b9050806001600160a01b0316836001600160a01b031614156109565760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108b8565b806001600160a01b0316610968611c7c565b6001600160a01b03161480610984575061098481610731611c7c565b6109f65760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016108b8565b610a008383611c86565b505050565b610a1260006105f1611c7c565b610a575760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610ade5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e000000000060448201526064016108b8565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610b4c60006105f1611c7c565b610b915760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b612710811115610c095760405162461bcd60e51b815260206004820152602a60248201527f4e46543a204270732070726f7669646564206d757374206265206c657373207460448201527f68616e2031302c3030300000000000000000000000000000000000000000000060648201526084016108b8565b60168190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b610c56610c50611c7c565b82611cf4565b610cc85760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b610a00838383611deb565b60115460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b158015610d1b57600080fd5b505afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190613632565b60165490925061271090610d679085613665565b610d719190613684565b90509250929050565b600082815260208190526040902060010154610d9d81610d98611c7c565b611faa565b610a008383612028565b6000610db2836113e7565b8210610e265760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016108b8565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b610e57611c7c565b6001600160a01b0316816001600160a01b031614610edd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108b8565b610ee7828261204a565b5050565b610f177f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105f1611c7c565b610f8b576040805162461bcd60e51b81526020600482015260248101919091527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f20756e706175736560648201526084016108b8565b610f9361206c565b565b610a00838383604051806020016040528060008152506117cd565b610fbb610c50611c7c565b61102d5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f7665640000000000000000000000000000000060648201526084016108b8565b6110368161210e565b50565b600c5460ff161561107f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b6110ab7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66105f1611c7c565b6111025760405162461bcd60e51b815260206004820152602260248201527f4e46543a206d7573742068617665206d696e74657220726f6c6520746f206d696044820152611b9d60f21b60648201526084016108b8565b60008167ffffffffffffffff81111561111d5761111d61348b565b604051908082528060200260200182016040528015611146578160200160208202803683370190505b506012549091506000611157611c7c565b905060005b848110156112115782848281518110611177576111776136a6565b602002602001018181525050858582818110611195576111956136a6565b90506020028101906111a791906136bc565b60008581526014602052604090206111c0929091613031565b50600083815260156020526040902080546001600160a01b0319166001600160a01b0384161790556111f287846121b5565b6111fd600184613703565b9250806112098161371b565b91505061115c565b5081601281905550856001600160a01b0316816001600160a01b03167f2a7af4d3b262c3e3d51c600cdf7a940c9aba3fedcc85148aeda266cc4c4a2f338588886040516112609392919061375f565b60405180910390a3505050505050565b600061127b600a5490565b82106112ef5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016108b8565b600a8281548110611302576113026136a6565b90600052602060002001549050919050565b6000818152600460205260408120546001600160a01b0316806107ab5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016108b8565b60405162461bcd60e51b815260206004820152601d60248201527f4e46543732313a2043616c6c206d696e744e465420696e73746561642e00000060448201526064016108b8565b60006001600160a01b0382166114655760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016108b8565b506001600160a01b031660009081526005602052604090205490565b6114ad7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105f1611c7c565b61151f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732315072657365744d696e7465725061757365724175746f49643a2060448201527f6d75737420686176652070617573657220726f6c6520746f207061757365000060648201526084016108b8565b610f93612303565b61153460006105f1611c7c565b6115795760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b600f8054821515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90610c3a90831515815260200190565b6010546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166116285750600090565b6010546001600160a01b03165b905090565b6000828152600160205260408120611652908361237f565b9392505050565b61166660006105f1611c7c565b6116ab5760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016108b8565b610a0060138383613031565b6060600380546107c0906135f7565b610ee76116d1611c7c565b838361238b565b60608167ffffffffffffffff8111156116f3576116f361348b565b60405190808252806020026020018201604052801561172657816020015b60608152602001906001900390816117115790505b50905060005b828110156117c6576117963085858481811061174a5761174a6136a6565b905060200281019061175c91906136bc565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061245a92505050565b8282815181106117a8576117a86136a6565b602002602001018190525080806117be9061371b565b91505061172c565b5092915050565b6117de6117d8611c7c565b83611cf4565b6118505760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016108b8565b61185c8484848461247f565b50505050565b6013805461186f906135f7565b80601f016020809104026020016040519081016040528092919081815260200182805461189b906135f7565b80156118e85780601f106118bd576101008083540402835291602001916118e8565b820191906000526020600020905b8154815290600101906020018083116118cb57829003601f168201915b505050505081565b600081815260146020526040902080546060919061190d906135f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611939906135f7565b80156119865780601f1061195b57610100808354040283529160200191611986565b820191906000526020600020905b81548152906001019060200180831161196957829003601f168201915b50505050509050919050565b60008181526001602052604081206107ab90612508565b6000828152602081905260409020600101546119c781610d98611c7c565b610a00838361204a565b6060601380546107c0906135f7565b600c5460ff1615611a265760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b611a527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66105f1611c7c565b611aa95760405162461bcd60e51b815260206004820152602260248201527f4e46543a206d7573742068617665206d696e74657220726f6c6520746f206d696044820152611b9d60f21b60648201526084016108b8565b6012546000818152601460205260409020611ac5908484613031565b50611ace611c7c565b600082815260156020526040902080546001600160a01b0319166001600160a01b0392909216919091179055611b0484826121b5565b600160126000828254611b179190613703565b90915550506001600160a01b038416611b2e611c7c565b6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d838686604051611b6a93929190613833565b60405180910390a350505050565b6014602052600090815260409020805461186f906135f7565b600f546000906001600160a01b0316331415611bb4575060131936013560601c90565b503390565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610ee7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611c18611c7c565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611652836001600160a01b038416612512565b60006107ab82612561565b6000611635611b91565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611cbb82611314565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316611d6d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016108b8565b6000611d7883611314565b9050806001600160a01b0316846001600160a01b03161480611db35750836001600160a01b0316611da884610843565b6001600160a01b0316145b80611de357506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611dfe82611314565b6001600160a01b031614611e7a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016108b8565b6001600160a01b038216611edc5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108b8565b611ee7838383612586565b611ef2600082611c86565b6001600160a01b0383166000908152600560205260408120805460019290611f1b908490613856565b90915550506001600160a01b0382166000908152600560205260408120805460019290611f49908490613703565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610ee757611fe6816001600160a01b031660146126ba565b611ff18360206126ba565b60405160200161200292919061386d565b60408051601f198184030181529082905262461bcd60e51b82526108b891600401613155565b6120328282611bbd565b6000828152600160205260409020610a009082611c5c565b6120548282612863565b6000828152600160205260409020610a009082612900565b600c5460ff166120be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108b8565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6120f1611c7c565b6040516001600160a01b03909116815260200160405180910390a1565b600061211982611314565b905061212781600084612586565b612132600083611c86565b6001600160a01b038116600090815260056020526040812080546001929061215b908490613856565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b03821661220b5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108b8565b6000818152600460205260409020546001600160a01b0316156122705760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108b8565b61227c60008383612586565b6001600160a01b03821660009081526005602052604081208054600192906122a5908490613703565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600c5460ff16156123495760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b8565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120f1611c7c565b60006116528383612915565b816001600160a01b0316836001600160a01b031614156123ed5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108b8565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606061165283836040518060600160405280602781526020016139876027913961293f565b61248a848484611deb565b61249684848484612a2a565b61185c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b60006107ab825490565b6000818152600183016020526040812054612559575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107ab565b5060006107ab565b60006001600160e01b0319821663780e9d6360e01b14806107ab57506107ab82612b94565b612591838383612bd4565b600f54600160a01b900460ff1680156125b257506001600160a01b03831615155b80156125c657506001600160a01b03821615155b15610a00576001600160a01b03831660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff168061264857506001600160a01b03821660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b610a005760405162461bcd60e51b815260206004820152603660248201527f4e46543a205472616e736665727320617265207265737472696374656420746f60448201527f205452414e534645525f524f4c4520686f6c646572730000000000000000000060648201526084016108b8565b606060006126c9836002613665565b6126d4906002613703565b67ffffffffffffffff8111156126ec576126ec61348b565b6040519080825280601f01601f191660200182016040528015612716576020820181803683370190505b509050600360fc1b81600081518110612731576127316136a6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612760576127606136a6565b60200101906001600160f81b031916908160001a9053506000612784846002613665565b61278f906001613703565b90505b6001811115612814577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106127d0576127d06136a6565b1a60f81b8282815181106127e6576127e66136a6565b60200101906001600160f81b031916908160001a90535060049490941c9361280d816138ee565b9050612792565b5083156116525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610ee7576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556128bc611c7c565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611652836001600160a01b038416612bdf565b600082600001828154811061292c5761292c6136a6565b9060005260206000200154905092915050565b6060833b6129b55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016108b8565b600080856001600160a01b0316856040516129d09190613905565b600060405180830381855af49150503d8060008114612a0b576040519150601f19603f3d011682016040523d82523d6000602084013e612a10565b606091505b5091509150612a20828286612cd2565b9695505050505050565b60006001600160a01b0384163b15612b8957836001600160a01b031663150b7a02612a53611c7c565b8786866040518563ffffffff1660e01b8152600401612a759493929190613921565b602060405180830381600087803b158015612a8f57600080fd5b505af1925050508015612abf575060408051601f3d908101601f19168201909252612abc91810190613953565b60015b612b6f573d808015612aed576040519150601f19603f3d011682016040523d82523d6000602084013e612af2565b606091505b508051612b675760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108b8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611de3565b506001949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612bc557506001600160e01b03198216635b5e139f60e01b145b806107ab57506107ab82612d0b565b610a00838383612d30565b60008181526001830160205260408120548015612cc8576000612c03600183613856565b8554909150600090612c1790600190613856565b9050818114612c7c576000866000018281548110612c3757612c376136a6565b9060005260206000200154905080876000018481548110612c5a57612c5a6136a6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612c8d57612c8d613970565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107ab565b60009150506107ab565b60608315612ce1575081611652565b825115612cf15782518084602001fd5b8160405162461bcd60e51b81526004016108b89190613155565b60006001600160e01b03198216635a05180f60e01b14806107ab57506107ab82612db4565b612d3b838383612de9565b600c5460ff1615610a005760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c652070617573656400000000000000000000000000000000000000000060648201526084016108b8565b60006001600160e01b03198216637965db0b60e01b14806107ab57506301ffc9a760e01b6001600160e01b03198316146107ab565b6001600160a01b038316612e4457612e3f81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b612e67565b816001600160a01b0316836001600160a01b031614612e6757612e678382612ea1565b6001600160a01b038216612e7e57610a0081612f3e565b826001600160a01b0316826001600160a01b031614610a0057610a008282612fed565b60006001612eae846113e7565b612eb89190613856565b600083815260096020526040902054909150808214612f0b576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090612f5090600190613856565b6000838152600b6020526040812054600a8054939450909284908110612f7857612f786136a6565b9060005260206000200154905080600a8381548110612f9957612f996136a6565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480612fd157612fd1613970565b6001900381819060005260206000200160009055905550505050565b6000612ff8836113e7565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b82805461303d906135f7565b90600052602060002090601f01602090048101928261305f57600085556130a5565b82601f106130785782800160ff198235161785556130a5565b828001600101855582156130a5579182015b828111156130a557823582559160200191906001019061308a565b506130b19291506130b5565b5090565b5b808211156130b157600081556001016130b6565b6001600160e01b03198116811461103657600080fd5b6000602082840312156130f257600080fd5b8135611652816130ca565b60005b83811015613118578181015183820152602001613100565b8381111561185c5750506000910152565b600081518084526131418160208601602086016130fd565b601f01601f19169290920160200192915050565b6020815260006116526020830184613129565b60006020828403121561317a57600080fd5b5035919050565b6001600160a01b038116811461103657600080fd5b600080604083850312156131a957600080fd5b82356131b481613181565b946020939093013593505050565b6000602082840312156131d457600080fd5b813561165281613181565b6000806000606084860312156131f457600080fd5b83356131ff81613181565b9250602084013561320f81613181565b929592945050506040919091013590565b6000806040838503121561323357600080fd5b50508035926020909101359150565b6000806040838503121561325557600080fd5b82359150602083013561326781613181565b809150509250929050565b60008083601f84011261328457600080fd5b50813567ffffffffffffffff81111561329c57600080fd5b6020830191508360208260051b85010111156132b757600080fd5b9250929050565b6000806000604084860312156132d357600080fd5b83356132de81613181565b9250602084013567ffffffffffffffff8111156132fa57600080fd5b61330686828701613272565b9497909650939450505050565b8035801515811461332357600080fd5b919050565b60006020828403121561333a57600080fd5b61165282613313565b60008083601f84011261335557600080fd5b50813567ffffffffffffffff81111561336d57600080fd5b6020830191508360208285010111156132b757600080fd5b6000806020838503121561339857600080fd5b823567ffffffffffffffff8111156133af57600080fd5b6133bb85828601613343565b90969095509350505050565b600080604083850312156133da57600080fd5b82356133e581613181565b9150610d7160208401613313565b6000806020838503121561340657600080fd5b823567ffffffffffffffff81111561341d57600080fd5b6133bb85828601613272565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561347e57603f1988860301845261346c858351613129565b94509285019290850190600101613450565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156134b757600080fd5b84356134c281613181565b935060208501356134d281613181565b925060408501359150606085013567ffffffffffffffff808211156134f657600080fd5b818701915087601f83011261350a57600080fd5b81358181111561351c5761351c61348b565b604051601f8201601f19908116603f011681019083821181831017156135445761354461348b565b816040528281528a602084870101111561355d57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561359457600080fd5b823561359f81613181565b9150602083013561326781613181565b6000806000604084860312156135c457600080fd5b83356135cf81613181565b9250602084013567ffffffffffffffff8111156135eb57600080fd5b61330686828701613343565b600181811c9082168061360b57607f821691505b6020821081141561362c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561364457600080fd5b815161165281613181565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561367f5761367f61364f565b500290565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126136d357600080fd5b83018035915067ffffffffffffffff8211156136ee57600080fd5b6020019150368190038213156132b757600080fd5b600082198211156137165761371661364f565b500190565b600060001982141561372f5761372f61364f565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604080825284519082018190526000906020906060840190828801845b828110156137985781518452928401929084019060010161377c565b50505083810382850152848152818101600586901b820183018760005b8881101561382457848303601f190184528135368b9003601e190181126137db57600080fd5b8a01803567ffffffffffffffff8111156137f457600080fd5b8036038c131561380357600080fd5b61381085828a8501613736565b9588019594505050908501906001016137b5565b50909998505050505050505050565b83815260406020820152600061384d604083018486613736565b95945050505050565b6000828210156138685761386861364f565b500390565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516138a58160178501602088016130fd565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516138e28160288401602088016130fd565b01602801949350505050565b6000816138fd576138fd61364f565b506000190190565b600082516139178184602087016130fd565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612a206080830184613129565b60006020828403121561396557600080fd5b8151611652816130ca565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$q = function isSuperArgs(xs) {
return xs.length > 1;
};
var NFT__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(NFT__factory, _ContractFactory);
function NFT__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$q(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$19, _bytecode$q, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = NFT__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _name, _symbol, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
NFT__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$19);
};
NFT__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$19, signerOrProvider);
};
return NFT__factory;
}(ContractFactory);
NFT__factory.bytecode = _bytecode$q;
NFT__factory.abi = _abi$19;
var _abi$1a = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
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: "redeemer",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "sourceOfUnderlying",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "tokenAmountReceived",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "sharesRedeemed",
type: "uint256"
}],
name: "ERC20Redeemed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "sourceOfUnderlying",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "totalAmountOfUnderlying",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "tokenURI",
type: "string"
}],
name: "ERC20WrappedToken",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "redeemer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "sourceOfUnderlying",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "tokenIdOfUnderlying",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ERC721Redeemed",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "sourceOfUnderlying",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "tokenIdOfUnderlying",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "tokenURI",
type: "string"
}],
name: "ERC721WrappedToken",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "tokenIds",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "tokenURIs",
type: "string[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "tokenSupplies",
type: "uint256[]"
}],
name: "NativeTokens",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "transferable",
type: "bool"
}],
name: "RestrictedTransferUpdated",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "_contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string[]",
name: "_nftURIs",
type: "string[]"
}, {
internalType: "uint256[]",
name: "_nftSupplies",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "createNativeTokens",
outputs: [{
internalType: "uint256[]",
name: "nftIds",
type: "uint256[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "creator",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "erc20WrappedTokens",
outputs: [{
internalType: "address",
name: "source",
type: "address"
}, {
internalType: "uint256",
name: "shares",
type: "uint256"
}, {
internalType: "uint256",
name: "underlyingTokenAmount",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "erc721WrappedTokens",
outputs: [{
internalType: "address",
name: "source",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nextTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}, {
internalType: "uint256",
name: "_amount",
type: "uint256"
}],
name: "redeemERC20",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "redeemERC721",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "tokenState",
outputs: [{
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "enum NFTCollection.UnderlyingType",
name: "underlyingType",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_nftId",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_tokenContract",
type: "address"
}, {
internalType: "uint256",
name: "_tokenAmount",
type: "uint256"
}, {
internalType: "uint256",
name: "_numOfNftsToMint",
type: "uint256"
}, {
internalType: "string",
name: "_nftURI",
type: "string"
}],
name: "wrapERC20",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_nftContract",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "string",
name: "_nftURI",
type: "string"
}],
name: "wrapERC721",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}];
var _bytecode$r = "0x60806040523480156200001157600080fd5b50604051620060e8380380620060e883398101604081905262000034916200054d565b828280620000428162000175565b506005805460ff191690556200006360006200005d6200018e565b620001aa565b620000927f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200005d6200018e565b620000c17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200005d6200018e565b50600780546001600160a01b03199081166001600160a01b03938416179091556008805490911691861691909117905581516200010690600c90602085019062000478565b50620001116200018e565b600980546001600160a01b0319166001600160a01b0392909216919091179055620001607f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200005d6200018e565b6200016b81620001b6565b505050506200069a565b80516200018a90600490602084019062000478565b5050565b6000620001a5620002d360201b62002d191760201c565b905090565b6200018a82826200030c565b620001cc6000620001c66200018e565b6200034f565b6200021e5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c650000000000000000000060448201526064015b60405180910390fd5b612710811115620002985760405162461bcd60e51b815260206004820152603e60248201527f4e4654436f6c6c656374696f6e3a20496e76616c6964206270732070726f766960448201527f6465643b206d757374206265206c657373207468616e2031302c3030302e0000606482015260840162000215565b600b8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b6007546000906001600160a01b0316331415620002f7575060131936013560601c90565b620001a56200037a60201b62002d441760201c565b6200032382826200037e60201b62002d481760201c565b60008281526001602090815260409091206200034a91839062002de762000408821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b6200038a82826200034f565b6200018a576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003c46200018e565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200041f836001600160a01b03841662000426565b9392505050565b60008181526001830160205260408120546200046f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000374565b50600062000374565b82805462000486906200065d565b90600052602060002090601f016020900481019282620004aa5760008555620004f5565b82601f10620004c557805160ff1916838001178555620004f5565b82800160010185558215620004f5579182015b82811115620004f5578251825591602001919060010190620004d8565b506200050392915062000507565b5090565b5b8082111562000503576000815560010162000508565b6001600160a01b03811681146200053457600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200056457600080fd5b845162000571816200051e565b8094505060208086015162000586816200051e565b60408701519094506001600160401b0380821115620005a457600080fd5b818801915088601f830112620005b957600080fd5b815181811115620005ce57620005ce62000537565b604051601f8201601f19908116603f01168101908382118183101715620005f957620005f962000537565b816040528281528b868487010111156200061257600080fd5b600093505b8284101562000636578484018601518185018701529285019262000617565b82841115620006485760008684830101525b60609a909a0151989b979a5050505050505050565b600181811c908216806200067257607f821691505b602082108114156200069457634e487b7160e01b600052602260045260246000fd5b50919050565b615a3e80620006aa6000396000f3fe608060405234801561001057600080fd5b50600436106103565760003560e01c80638456cb59116101c8578063c0e7274011610104578063e63ab1e9116100a2578063f23a6e611161007c578063f23a6e611461087f578063f242432a1461089e578063f5298aca146108b1578063fafdcc88146108c457600080fd5b8063e63ab1e914610814578063e8a3d4851461083b578063e985e9c51461084357600080fd5b8063ca15c873116100de578063ca15c873146107b4578063d5391393146107c7578063d547741f146107ee578063db884b0c1461080157600080fd5b8063c0e72740146107a3578063c63adb2b146107ab578063c87b56dd146103b957600080fd5b806393b778d411610171578063a22cb4651161014b578063a22cb46514610731578063ac9650d814610744578063bc197c8114610764578063bd85b0391461078357600080fd5b806393b778d4146106f45780639745cc3d14610707578063a217fddf1461072957600080fd5b80639010d07c116101a25780639010d07c1461069757806391d14854146106aa578063938e3d7b146106e157600080fd5b80638456cb59146106745780638ba448c21461067c5780638da5cb5b1461068f57600080fd5b806336568abe116102975780635c975abb11610240578063731133e91161021a578063731133e91461063857806375794a3c1461064b5780637a61080b146106545780638423df791461066757600080fd5b80635c975abb146105bc5780635cd9913d146105c75780636b20c4541461062557600080fd5b80634e1273f4116102715780634e1273f414610539578063510b515814610559578063572b6c051461059a57600080fd5b806336568abe146104eb578063367a182b146104fe5780633f4ba83a1461053157600080fd5b80631f72d83111610304578063248a9ca3116102de578063248a9ca3146104705780632a55205a146104935780632eb2c2d6146104c55780632f2ff15d146104d857600080fd5b80631f72d831146104235780631f7fdffa14610436578063206b60f91461044957600080fd5b80630e89341c116103355780630e89341c146103b957806313af4035146103d9578063150b7a02146103ec57600080fd5b8062fdd58e1461035b57806301ffc9a714610381578063090a3282146103a4575b600080fd5b61036e610369366004614a20565b6108d7565b6040519081526020015b60405180910390f35b61039461038f366004614a62565b610985565b6040519015158152602001610378565b6103b76103b2366004614ac8565b6109b0565b005b6103cc6103c7366004614b24565b610f3e565b6040516103789190614b95565b6103b76103e7366004614ba8565b610fe3565b61040a6103fa366004614c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610378565b6103b7610431366004614b24565b61111d565b6103b7610444366004614d7d565b611223565b61036e7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b61036e61047e366004614b24565b60009081526020819052604090206001015490565b6104a66104a1366004614e0c565b6113d4565b604080516001600160a01b039093168352602083019190915201610378565b6103b76104d3366004614e2e565b61147b565b6103b76104e6366004614edc565b61152f565b6103b76104f9366004614edc565b611561565b6104a661050c366004614b24565b600f60205260009081526040902080546001909101546001600160a01b039091169082565b6103b76115fd565b61054c610547366004614f0c565b6116a5565b6040516103789190615014565b610582610567366004614b24565b6000908152600e60205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610378565b6103946105a8366004614ba8565b6007546001600160a01b0391821691161490565b60055460ff16610394565b6106006105d5366004614b24565b6010602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610378565b6103b7610633366004615027565b6117e3565b6103b761064636600461509d565b61187a565b61036e600a5481565b6103b7610662366004614e0c565b61199d565b600d546103949060ff1681565b6103b7611bbc565b6103b761068a3660046150f6565b611c62565b610582611cf5565b6105826106a5366004614e0c565b611d4e565b6103946106b8366004614edc565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103b76106ef366004615113565b611d6d565b6103b7610702366004614b24565b611dcb565b61071a610715366004614b24565b611f45565b6040516103789392919061516b565b61036e600081565b6103b761073f3660046151bb565b611ffd565b61075761075236600461522e565b61200f565b6040516103789190615264565b61040a610772366004614e2e565b63bc197c8160e01b95945050505050565b61036e610791366004614b24565b60009081526006602052604090205490565b6103cc612104565b61036e600b5481565b61036e6107c2366004614b24565b612192565b61036e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103b76107fc366004614edc565b6121a9565b6103b761080f3660046152c6565b6121d1565b61036e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6103cc612749565b610394610851366004615330565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61040a61088d36600461535e565b63f23a6e6160e01b95945050505050565b6103b76108ac36600461535e565b6127db565b6103b76108bf3660046153c7565b612874565b61054c6108d23660046153fc565b61290b565b60006001600160a01b03831661095a5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061099082612dfc565b8061097f57506001600160e01b0319821663152a902d60e11b1492915050565b60055460ff16156109f65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610951565b610a227f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66106b8612e07565b610aa25760405162461bcd60e51b815260206004820152604560248201527f4e4654436f6c6c656374696f6e3a204f6e6c79206163636f756e74732077697460448201527f68204d494e5445525f524f4c452063616e2063616c6c20746869732066756e636064820152643a34b7b71760d91b608482015260a401610951565b610aaa612e07565b6040516331a9108f60e11b8152600481018590526001600160a01b0391821691861690636352211e9060240160206040518083038186803b158015610aee57600080fd5b505afa158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2691906154a1565b6001600160a01b031614610ba25760405162461bcd60e51b815260206004820152603560248201527f4e4654436f6c6c656374696f6e3a204f6e6c7920746865206f776e6572206f6660448201527f20746865204e46542063616e20777261702069742e00000000000000000000006064820152608401610951565b60405163020604bf60e21b81526004810184905230906001600160a01b0386169063081812fc9060240160206040518083038186803b158015610be457600080fd5b505afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c91906154a1565b6001600160a01b03161480610cc05750836001600160a01b031663e985e9c5610c43612e07565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015610c8857600080fd5b505afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906154be565b610d325760405162461bcd60e51b815260206004820152603d60248201527f4e4654436f6c6c656374696f6e3a204d75737420617070726f7665207468652060448201527f636f6e747261637420746f207472616e7366657220746865204e46542e0000006064820152608401610951565b6000610d3c612e07565b600a80549192506001906000610d5283856154f1565b9091555050604051632142170760e11b81526001600160a01b038381166004830152306024830152604482018790528716906342842e0e90606401600060405180830381600087803b158015610da757600080fd5b505af1158015610dbb573d6000803e3d6000fd5b50505050610ddb8282600160405180602001604052806000815250612e11565b6040518060600160405280836001600160a01b0316815260200185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050600260209384015250838152600e825260409020825181546001600160a01b0319166001600160a01b039091161781558282015180519192610e76926001850192909101906148fb565b5060408201518160020160006101000a81548160ff02191690836002811115610ea157610ea1615155565b0217905550506040805180820182526001600160a01b0389811680835260208084018b81526000888152600f90925290859020935184546001600160a01b031916908416178455516001909301929092559151909250908416907f797091bed1dcc535a592c3da1115fdb7467204ef9fb70943f0fc855ebe0a30f590610f2e90899086908a908a90615532565b60405180910390a3505050505050565b6000818152600e60205260409020600101805460609190610f5e90615552565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8a90615552565b8015610fd75780601f10610fac57610100808354040283529160200191610fd7565b820191906000526020600020905b815481529060010190602001808311610fba57829003601f168201915b50505050509050919050565b610ff060006106b8612e07565b6110355760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610951565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166110bc5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610951565b600980546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b61112a60006106b8612e07565b61116f5760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610951565b6127108111156111e75760405162461bcd60e51b815260206004820152603e60248201527f4e4654436f6c6c656374696f6e3a20496e76616c6964206270732070726f766960448201527f6465643b206d757374206265206c657373207468616e2031302c3030302e00006064820152608401610951565b600b8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b60018060005b85518110156112d957600a548682815181106112475761124761558d565b60200260200101511015801561125a5750825b1561126457600092505b6000600e600088848151811061127c5761127c61558d565b6020026020010151815260200190815260200160002060020160009054906101000a900460ff1660028111156112b4576112b4615155565b141580156112bf5750815b156112c957600091505b6112d2816155a3565b9050611229565b508161134d5760405162461bcd60e51b815260206004820152603960248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f742063616c6c20746869732060448201527f666e20666f72206372656174696e67206e6577204e4654732e000000000000006064820152608401610951565b806113c05760405162461bcd60e51b815260206004820152603a60248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f7420667265656c79206d696e60448201527f74206d6f7265206f66204552433230206f72204552433732312e0000000000006064820152608401610951565b6113cc86868686612f2e565b505050505050565b60085460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145491906154a1565b600b549092506127109061146890856155be565b61147291906155dd565b90509250929050565b611483612e07565b6001600160a01b0316856001600160a01b031614806114a957506114a985610851612e07565b61151b5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610951565b6115288585858585612fd8565b5050505050565b6000828152602081905260409020600101546115528161154d612e07565b61324a565b61155c83836132c8565b505050565b611569612e07565b6001600160a01b0316816001600160a01b0316146115ef5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610951565b6115f982826132ea565b5050565b6116297f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106b8612e07565b61169b5760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610951565b6116a361330c565b565b6060815183511461171e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610951565b6000835167ffffffffffffffff81111561173a5761173a614bc5565b604051908082528060200260200182016040528015611763578160200160208202803683370190505b50905060005b84518110156117db576117ae8582815181106117875761178761558d565b60200260200101518583815181106117a1576117a161558d565b60200260200101516108d7565b8282815181106117c0576117c061558d565b60209081029190910101526117d4816155a3565b9050611769565b509392505050565b6117eb612e07565b6001600160a01b0316836001600160a01b03161480611811575061181183610851612e07565b61186f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610951565b61155c8383836133ae565b600a5483106118f15760405162461bcd60e51b815260206004820152603960248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f742063616c6c20746869732060448201527f666e20666f72206372656174696e67206e6577204e4654732e000000000000006064820152608401610951565b6000838152600e6020526040812060029081015460ff169081111561191857611918615155565b1461198b5760405162461bcd60e51b815260206004820152603a60248201527f4e4654436f6c6c656374696f6e3a2063616e6e6f7420667265656c79206d696e60448201527f74206d6f7265206f66204552433230206f72204552433732312e0000000000006064820152608401610951565b611997848484846135f1565b50505050565b60006119a7612e07565b9050816119b482856108d7565b1015611a285760405162461bcd60e51b815260206004820152603360248201527f4e4654436f6c6c656374696f6e3a2043616e6e6f742072656465656d20616e2060448201527f4e465420796f7520646f206e6f74206f776e2e000000000000000000000000006064820152608401610951565b611a3381848461369b565b60008381526010602052604081206001810154600290910154611a579085906155be565b611a6191906155dd565b6000858152601060205260409081902054905163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb90604401602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af691906154be565b611b5a5760405162461bcd60e51b815260206004820152602f60248201527f4e4654436f6c6c656374696f6e3a204661696c656420746f207472616e73666560448201526e391022a9219918103a37b5b2b7399760891b6064820152608401610951565b6000848152601060209081526040918290205482518481529182018690526001600160a01b03908116928792918616917fb80333a30b48beb3745280a5e4bb1b8e53f79569e454ec99ba13678dfbe728eb91015b60405180910390a450505050565b611be87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106b8612e07565b611c5a5760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610951565b6116a3613823565b611c6f60006106b8612e07565b611cb45760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610951565b600d805460ff19168215159081179091556040519081527ffb4ba02cee22486df888d7ffb97c6100ec3193781e025cb9a4bc6fc358d626cc90602001611218565b6009546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16611d3c5750600090565b6009546001600160a01b03165b905090565b6000828152600160205260408120611d66908361389f565b9392505050565b611d7a60006106b8612e07565b611dbf5760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b6044820152606401610951565b61155c600c838361497f565b6000611dd5612e07565b90506000611de382846108d7565b11611e565760405162461bcd60e51b815260206004820152603360248201527f4e4654436f6c6c656374696f6e3a2043616e6e6f742072656465656d20616e2060448201527f4e465420796f7520646f206e6f74206f776e2e000000000000000000000000006064820152608401610951565b611e628183600161369b565b6000828152600f60205260409081902080546001909101549151632142170760e11b81523060048201526001600160a01b03848116602483015260448201939093529116906342842e0e90606401600060405180830381600087803b158015611eca57600080fd5b505af1158015611ede573d6000803e3d6000fd5b5050506000838152600f6020908152604091829020805460019091015483519081529182018690526001600160a01b0390811693508416917fea7b88a04220a2292e142652e8e1a59cc00e7d27d8ad6b11da6cf5870e6ba866910160405180910390a35050565b600e60205260009081526040902080546001820180546001600160a01b039092169291611f7190615552565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9d90615552565b8015611fea5780601f10611fbf57610100808354040283529160200191611fea565b820191906000526020600020905b815481529060010190602001808311611fcd57829003601f168201915b5050506002909301549192505060ff1683565b6115f9612008612e07565b83836138ab565b60608167ffffffffffffffff81111561202a5761202a614bc5565b60405190808252806020026020018201604052801561205d57816020015b60608152602001906001900390816120485790505b50905060005b828110156120fd576120cd308585848181106120815761208161558d565b905060200281019061209391906155ff565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139a092505050565b8282815181106120df576120df61558d565b602002602001018190525080806120f5906155a3565b915050612063565b5092915050565b600c805461211190615552565b80601f016020809104026020016040519081016040528092919081815260200182805461213d90615552565b801561218a5780601f1061215f5761010080835404028352916020019161218a565b820191906000526020600020905b81548152906001019060200180831161216d57829003601f168201915b505050505081565b600081815260016020526040812061097f906139c5565b6000828152602081905260409020600101546121c78161154d612e07565b61155c83836132ea565b60055460ff16156122175760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610951565b6122437f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66106b8612e07565b6122c35760405162461bcd60e51b815260206004820152604560248201527f4e4654436f6c6c656374696f6e3a204f6e6c79206163636f756e74732077697460448201527f68204d494e5445525f524f4c452063616e2063616c6c20746869732066756e636064820152643a34b7b71760d91b608482015260a401610951565b60006122cd612e07565b6040516370a0823160e01b81526001600160a01b03808316600483015291925086918816906370a082319060240160206040518083038186803b15801561231357600080fd5b505afa158015612327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234b9190615646565b10156123bf5760405162461bcd60e51b815260206004820152603b60248201527f4e4654436f6c6c656374696f6e3a204d757374206f776e2074686520616d6f7560448201527f6e74206f6620746f6b656e73206265696e6720777261707065642e00000000006064820152608401610951565b604051636eb1769f60e11b81526001600160a01b03828116600483015230602483015286919088169063dd62ed3e9060440160206040518083038186803b15801561240957600080fd5b505afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124419190615646565b10156124b55760405162461bcd60e51b815260206004820152603d60248201527f4e4654436f6c6c656374696f6e3a204d75737420617070726f7665207468697360448201527f20636f6e747261637420746f207472616e7366657220746f6b656e732e0000006064820152608401610951565b6040516323b872dd60e01b81526001600160a01b038281166004830152306024830152604482018790528716906323b872dd90606401602060405180830381600087803b15801561250557600080fd5b505af1158015612519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253d91906154be565b6125a15760405162461bcd60e51b815260206004820152602f60248201527f4e4654436f6c6c656374696f6e3a204661696c656420746f207472616e73666560448201526e391022a9219918103a37b5b2b7399760891b6064820152608401610951565b600a80549060019060006125b583856154f1565b925050819055506125d782828760405180602001604052806000815250612e11565b6040518060600160405280836001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505060016020938401819052858352600e84526040909220845181546001600160a01b0319166001600160a01b039091161781558484015180519194612671948601935001906148fb565b5060408201518160020160006101000a81548160ff0219169083600281111561269c5761269c615155565b021790555050604080516060810182526001600160a01b038a811680835260208084018b81528486018d81526000898152601090935291869020945185546001600160a01b031916908516178555516001850155516002909301929092559151909250908416907f53af9a53d4a11cb382035aa13d6d8e24575569953176d87464ba37e7013a6aa490612738908a908a9087908b908b9061565f565b60405180910390a350505050505050565b6060600c805461275890615552565b80601f016020809104026020016040519081016040528092919081815260200182805461278490615552565b80156127d15780601f106127a6576101008083540402835291602001916127d1565b820191906000526020600020905b8154815290600101906020018083116127b457829003601f168201915b5050505050905090565b6127e3612e07565b6001600160a01b0316856001600160a01b03161480612809575061280985610851612e07565b6128675760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610951565b61152885858585856139cf565b61287c612e07565b6001600160a01b0316836001600160a01b031614806128a257506128a283610851612e07565b6129005760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610951565b61155c83838361369b565b606061291960055460ff1690565b156129595760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610951565b6129857f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66106b8612e07565b612a055760405162461bcd60e51b815260206004820152604560248201527f4e4654436f6c6c656374696f6e3a204f6e6c79206163636f756e74732077697460448201527f68204d494e5445525f524f4c452063616e2063616c6c20746869732066756e636064820152643a34b7b71760d91b608482015260a401610951565b848314612a7a5760405162461bcd60e51b815260206004820152603a60248201527f4e4654436f6c6c656374696f6e3a204d7573742073706563696679206571756160448201527f6c206e756d626572206f6620636f6e6669672076616c7565732e0000000000006064820152608401610951565b84612aed5760405162461bcd60e51b815260206004820152602c60248201527f4e4654436f6c6c656374696f6e3a204d75737420637265617465206174206c6560448201527f617374206f6e65204e46542e00000000000000000000000000000000000000006064820152608401610951565b6000612af7612e07565b90508567ffffffffffffffff811115612b1257612b12614bc5565b604051908082528060200260200182016040528015612b3b578160200160208202803683370190505b50600a5490925060005b87811015612c7c5781848281518110612b6057612b6061558d565b6020026020010181815250506040518060600160405280846001600160a01b031681526020018a8a84818110612b9857612b9861558d565b9050602002810190612baa91906155ff565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020918201819052848152600e825260409020825181546001600160a01b0319166001600160a01b039091161781558282015180519192612c29926001850192909101906148fb565b5060408201518160020160006101000a81548160ff02191690836002811115612c5457612c54615155565b0217905550612c68915060019050836154f1565b915080612c74816155a3565b915050612b45565b5080600a81905550612cc489848888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a9250613b7c915050565b816001600160a01b03167fbea5a4b7cf9a3f7d8bf7c987614db5dcfdcd917a2cd5788a210c0ebdccfc5da4848a8a8a8a604051612d059594939291906156df565b60405180910390a250509695505050505050565b6007546000906001600160a01b0316331415612d3c575060131936013560601c90565b503390565b90565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166115f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055612da3612e07565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611d66836001600160a01b038416613d5d565b600061097f82613dac565b6000611d49612d19565b6001600160a01b038416612e715760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610951565b6000612e7b612e07565b9050612e9c81600087612e8d88613dd1565b612e9688613dd1565b87613e1c565b60008481526002602090815260408083206001600160a01b038916845290915281208054859290612ece9084906154f1565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461152881600087878787613f72565b612f5a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66106b8612e07565b612fcc5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e7400000000000000006064820152608401610951565b61199784848484613b7c565b815183511461303a5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610951565b6001600160a01b03841661309e5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610951565b60006130a8612e07565b90506130b8818787878787613e1c565b60005b84518110156131e45760008582815181106130d8576130d861558d565b6020026020010151905060008583815181106130f6576130f661558d565b60209081029190910181015160008481526002835260408082206001600160a01b038e16835290935291909120549091508181101561318a5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610951565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906131c99084906154f1565b92505081905550505050806131dd906155a3565b90506130bb565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516132349291906157a3565b60405180910390a46113cc818787878787614127565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166115f957613286816001600160a01b03166014614232565b613291836020614232565b6040516020016132a29291906157d1565b60408051601f198184030181529082905262461bcd60e51b825261095191600401614b95565b6132d28282612d48565b600082815260016020526040902061155c9082612de7565b6132f482826143db565b600082815260016020526040902061155c9082614478565b60055460ff1661335e5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610951565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa613391612e07565b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166134105760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610951565b80518251146134725760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610951565b600061347c612e07565b905061349c81856000868660405180602001604052806000815250613e1c565b60005b83518110156135a05760008482815181106134bc576134bc61558d565b6020026020010151905060008483815181106134da576134da61558d565b60209081029190910181015160008481526002835260408082206001600160a01b038c1683529093529190912054909150818110156135675760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610951565b60009283526002602090815260408085206001600160a01b038b1686529091529092209103905580613598816155a3565b91505061349f565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611bae9291906157a3565b61361d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66106b8612e07565b61368f5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e7400000000000000006064820152608401610951565b61199784848484612e11565b6001600160a01b0383166136fd5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610951565b6000613707612e07565b90506137378185600061371987613dd1565b61372287613dd1565b60405180602001604052806000815250613e1c565b60008381526002602090815260408083206001600160a01b0388168452909152902054828110156137b65760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610951565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b60055460ff16156138695760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610951565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613391612e07565b6000611d66838361448d565b816001600160a01b0316836001600160a01b031614156139335760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610951565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060611d668383604051806060016040528060278152602001615a0b602791396144b7565b600061097f825490565b6001600160a01b038416613a335760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610951565b6000613a3d612e07565b9050613a4e818787612e8d88613dd1565b60008481526002602090815260408083206001600160a01b038a16845290915290205483811015613ad45760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610951565b60008581526002602090815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290613b139084906154f1565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4613b73828888888888613f72565b50505050505050565b6001600160a01b038416613bdc5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610951565b8151835114613c3e5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610951565b6000613c48612e07565b9050613c5981600087878787613e1c565b60005b8451811015613cf557838181518110613c7757613c7761558d565b602002602001015160026000878481518110613c9557613c9561558d565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254613cdd91906154f1565b90915550819050613ced816155a3565b915050613c5c565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613d469291906157a3565b60405180910390a461152881600087878787614127565b6000818152600183016020526040812054613da45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561097f565b50600061097f565b60006001600160e01b03198216630271189760e51b148061097f575061097f826145a2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613e0b57613e0b61558d565b602090810291909101015292915050565b613e2a8686868686866145e2565b600d5460ff168015613e4457506001600160a01b03851615155b8015613e5857506001600160a01b03841615155b156113cc576001600160a01b03851660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff1680613eda57506001600160a01b03841660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b6113cc5760405162461bcd60e51b815260206004820152604860248201527f4e4654436f6c6c656374696f6e3a205472616e7366657273206172652072657360448201527f7472696374656420746f206f722066726f6d205452414e534645525f524f4c4560648201527f20686f6c64657273000000000000000000000000000000000000000000000000608482015260a401610951565b6001600160a01b0384163b156113cc5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613fb69089908990889088908890600401615852565b602060405180830381600087803b158015613fd057600080fd5b505af1925050508015614000575060408051601f3d908101601f19168201909252613ffd9181019061588a565b60015b6140b65761400c6158a7565b806308c379a0141561404657506140216158c2565b8061402c5750614048565b8060405162461bcd60e51b81526004016109519190614b95565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610951565b6001600160e01b0319811663f23a6e6160e01b14613b735760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610951565b6001600160a01b0384163b156113cc5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061416b908990899088908890889060040161594c565b602060405180830381600087803b15801561418557600080fd5b505af19250505080156141b5575060408051601f3d908101601f191682019092526141b29181019061588a565b60015b6141c15761400c6158a7565b6001600160e01b0319811663bc197c8160e01b14613b735760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610951565b606060006142418360026155be565b61424c9060026154f1565b67ffffffffffffffff81111561426457614264614bc5565b6040519080825280601f01601f19166020018201604052801561428e576020820181803683370190505b509050600360fc1b816000815181106142a9576142a961558d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106142d8576142d861558d565b60200101906001600160f81b031916908160001a90535060006142fc8460026155be565b6143079060016154f1565b90505b600181111561438c577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106143485761434861558d565b1a60f81b82828151811061435e5761435e61558d565b60200101906001600160f81b031916908160001a90535060049490941c93614385816159aa565b905061430a565b508315611d665760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610951565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156115f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055614434612e07565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611d66836001600160a01b0384166146fc565b60008260000182815481106144a4576144a461558d565b9060005260206000200154905092915050565b6060833b61452d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610951565b600080856001600160a01b03168560405161454891906159c1565b600060405180830381855af49150503d8060008114614583576040519150601f19603f3d011682016040523d82523d6000602084013e614588565b606091505b50915091506145988282866147ef565b9695505050505050565b60006001600160e01b03198216636cdb3d1360e11b14806145d357506001600160e01b031982166303a24d0760e21b145b8061097f575061097f82614828565b6145f086868686868661484d565b6001600160a01b0385166146775760005b83518110156146755782818151811061461c5761461c61558d565b60200260200101516006600086848151811061463a5761463a61558d565b60200260200101518152602001908152602001600020600082825461465f91906154f1565b9091555061466e9050816155a3565b9050614601565b505b6001600160a01b0384166113cc5760005b8351811015613b73578281815181106146a3576146a361558d565b6020026020010151600660008684815181106146c1576146c161558d565b6020026020010151815260200190815260200160002060008282546146e691906159dd565b909155506146f59050816155a3565b9050614688565b600081815260018301602052604081205480156147e55760006147206001836159dd565b8554909150600090614734906001906159dd565b90508181146147995760008660000182815481106147545761475461558d565b90600052602060002001549050808760000184815481106147775761477761558d565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806147aa576147aa6159f4565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061097f565b600091505061097f565b606083156147fe575081611d66565b82511561480e5782518084602001fd5b8160405162461bcd60e51b81526004016109519190614b95565b60006001600160e01b03198216635a05180f60e01b148061097f575061097f826148c6565b60055460ff16156113cc5760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c652070617573656400000000000000000000000000000000000000006064820152608401610951565b60006001600160e01b03198216637965db0b60e01b148061097f57506301ffc9a760e01b6001600160e01b031983161461097f565b82805461490790615552565b90600052602060002090601f016020900481019282614929576000855561496f565b82601f1061494257805160ff191683800117855561496f565b8280016001018555821561496f579182015b8281111561496f578251825591602001919060010190614954565b5061497b9291506149f3565b5090565b82805461498b90615552565b90600052602060002090601f0160209004810192826149ad576000855561496f565b82601f106149c65782800160ff1982351617855561496f565b8280016001018555821561496f579182015b8281111561496f5782358255916020019190600101906149d8565b5b8082111561497b57600081556001016149f4565b6001600160a01b0381168114614a1d57600080fd5b50565b60008060408385031215614a3357600080fd5b8235614a3e81614a08565b946020939093013593505050565b6001600160e01b031981168114614a1d57600080fd5b600060208284031215614a7457600080fd5b8135611d6681614a4c565b60008083601f840112614a9157600080fd5b50813567ffffffffffffffff811115614aa957600080fd5b602083019150836020828501011115614ac157600080fd5b9250929050565b60008060008060608587031215614ade57600080fd5b8435614ae981614a08565b935060208501359250604085013567ffffffffffffffff811115614b0c57600080fd5b614b1887828801614a7f565b95989497509550505050565b600060208284031215614b3657600080fd5b5035919050565b60005b83811015614b58578181015183820152602001614b40565b838111156119975750506000910152565b60008151808452614b81816020860160208601614b3d565b601f01601f19169290920160200192915050565b602081526000611d666020830184614b69565b600060208284031215614bba57600080fd5b8135611d6681614a08565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715614c0157614c01614bc5565b6040525050565b600082601f830112614c1957600080fd5b813567ffffffffffffffff811115614c3357614c33614bc5565b604051614c4a601f8301601f191660200182614bdb565b818152846020838601011115614c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614c9257600080fd5b8435614c9d81614a08565b93506020850135614cad81614a08565b925060408501359150606085013567ffffffffffffffff811115614cd057600080fd5b614cdc87828801614c08565b91505092959194509250565b600067ffffffffffffffff821115614d0257614d02614bc5565b5060051b60200190565b600082601f830112614d1d57600080fd5b81356020614d2a82614ce8565b604051614d378282614bdb565b83815260059390931b8501820192828101915086841115614d5757600080fd5b8286015b84811015614d725780358352918301918301614d5b565b509695505050505050565b60008060008060808587031215614d9357600080fd5b8435614d9e81614a08565b9350602085013567ffffffffffffffff80821115614dbb57600080fd5b614dc788838901614d0c565b94506040870135915080821115614ddd57600080fd5b614de988838901614d0c565b93506060870135915080821115614dff57600080fd5b50614cdc87828801614c08565b60008060408385031215614e1f57600080fd5b50508035926020909101359150565b600080600080600060a08688031215614e4657600080fd5b8535614e5181614a08565b94506020860135614e6181614a08565b9350604086013567ffffffffffffffff80821115614e7e57600080fd5b614e8a89838a01614d0c565b94506060880135915080821115614ea057600080fd5b614eac89838a01614d0c565b93506080880135915080821115614ec257600080fd5b50614ecf88828901614c08565b9150509295509295909350565b60008060408385031215614eef57600080fd5b823591506020830135614f0181614a08565b809150509250929050565b60008060408385031215614f1f57600080fd5b823567ffffffffffffffff80821115614f3757600080fd5b818501915085601f830112614f4b57600080fd5b81356020614f5882614ce8565b604051614f658282614bdb565b83815260059390931b8501820192828101915089841115614f8557600080fd5b948201945b83861015614fac578535614f9d81614a08565b82529482019490820190614f8a565b96505086013592505080821115614fc257600080fd5b50614fcf85828601614d0c565b9150509250929050565b600081518084526020808501945080840160005b8381101561500957815187529582019590820190600101614fed565b509495945050505050565b602081526000611d666020830184614fd9565b60008060006060848603121561503c57600080fd5b833561504781614a08565b9250602084013567ffffffffffffffff8082111561506457600080fd5b61507087838801614d0c565b9350604086013591508082111561508657600080fd5b5061509386828701614d0c565b9150509250925092565b600080600080608085870312156150b357600080fd5b84356150be81614a08565b93506020850135925060408501359150606085013567ffffffffffffffff811115614cd057600080fd5b8015158114614a1d57600080fd5b60006020828403121561510857600080fd5b8135611d66816150e8565b6000806020838503121561512657600080fd5b823567ffffffffffffffff81111561513d57600080fd5b61514985828601614a7f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038416815260606020820152600061518d6060830185614b69565b9050600383106151ad57634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600080604083850312156151ce57600080fd5b82356151d981614a08565b91506020830135614f01816150e8565b60008083601f8401126151fb57600080fd5b50813567ffffffffffffffff81111561521357600080fd5b6020830191508360208260051b8501011115614ac157600080fd5b6000806020838503121561524157600080fd5b823567ffffffffffffffff81111561525857600080fd5b615149858286016151e9565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156152b957603f198886030184526152a7858351614b69565b9450928501929085019060010161528b565b5092979650505050505050565b6000806000806000608086880312156152de57600080fd5b85356152e981614a08565b94506020860135935060408601359250606086013567ffffffffffffffff81111561531357600080fd5b61531f88828901614a7f565b969995985093965092949392505050565b6000806040838503121561534357600080fd5b823561534e81614a08565b91506020830135614f0181614a08565b600080600080600060a0868803121561537657600080fd5b853561538181614a08565b9450602086013561539181614a08565b93506040860135925060608601359150608086013567ffffffffffffffff8111156153bb57600080fd5b614ecf88828901614c08565b6000806000606084860312156153dc57600080fd5b83356153e781614a08565b95602085013595506040909401359392505050565b6000806000806000806080878903121561541557600080fd5b863561542081614a08565b9550602087013567ffffffffffffffff8082111561543d57600080fd5b6154498a838b016151e9565b9097509550604089013591508082111561546257600080fd5b61546e8a838b016151e9565b9095509350606089013591508082111561548757600080fd5b5061549489828a01614c08565b9150509295509295509295565b6000602082840312156154b357600080fd5b8151611d6681614a08565b6000602082840312156154d057600080fd5b8151611d66816150e8565b634e487b7160e01b600052601160045260246000fd5b60008219821115615504576155046154db565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201526000614598606083018486615509565b600181811c9082168061556657607f821691505b6020821081141561558757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156155b7576155b76154db565b5060010190565b60008160001904831182151516156155d8576155d86154db565b500290565b6000826155fa57634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e1984360301811261561657600080fd5b83018035915067ffffffffffffffff82111561563157600080fd5b602001915036819003821315614ac157600080fd5b60006020828403121561565857600080fd5b5051919050565b858152846020820152836040820152608060608201526000615685608083018486615509565b979650505050505050565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156156c257600080fd5b8260051b8083602087013760009401602001938452509192915050565b6060815260006156f26060830188614fd9565b602083820381850152818783528183019050818860051b8401018960005b8a81101561577f57858303601f190184528135368d9003601e1901811261573657600080fd5b8c01803567ffffffffffffffff81111561574f57600080fd5b8036038e131561575e57600080fd5b61576b8582898501615509565b958701959450505090840190600101615710565b5050858103604087015261579481888a615690565b9b9a5050505050505050505050565b6040815260006157b66040830185614fd9565b82810360208401526157c88185614fd9565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615809816017850160208801614b3d565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351615846816028840160208801614b3d565b01602801949350505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261568560a0830184614b69565b60006020828403121561589c57600080fd5b8151611d6681614a4c565b600060033d1115612d415760046000803e5060005160e01c90565b600060443d10156158d05790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561590057505050505090565b82850191508151818111156159185750505050505090565b843d87010160208285010111156159325750505050505090565b61594160208286010187614bdb565b509095945050505050565b60006001600160a01b03808816835280871660208401525060a0604083015261597860a0830186614fd9565b828103606084015261598a8186614fd9565b9050828103608084015261599e8185614b69565b98975050505050505050565b6000816159b9576159b96154db565b506000190190565b600082516159d3818460208701614b3d565b9190910192915050565b6000828210156159ef576159ef6154db565b500390565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$r = function isSuperArgs(xs) {
return xs.length > 1;
};
var NFTCollection__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(NFTCollection__factory, _ContractFactory);
function NFTCollection__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$r(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1a, _bytecode$r, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = NFTCollection__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, _royaltyBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
NFTCollection__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1a);
};
NFTCollection__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1a, signerOrProvider);
};
return NFTCollection__factory;
}(ContractFactory);
NFTCollection__factory.bytecode = _bytecode$r;
NFTCollection__factory.abi = _abi$1a;
var _abi$1b = [{
inputs: [{
internalType: "string",
name: "uri",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$s = "0x60806040523480156200001157600080fd5b5060405162003316380380620033168339810160408190526200003491620002e7565b806200004081620000b7565b506005805460ff1916905562000058600033620000d0565b620000847f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000d0565b620000b07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d0565b5062000400565b8051620000cc9060049060208401906200022b565b5050565b620000cc8282620000ed82826200011960201b62000d721760201c565b60008281526001602090815260409091206200011491839062000e10620001b9821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000cc576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001753390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001d0836001600160a01b038416620001d9565b90505b92915050565b60008181526001830160205260408120546200022257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001d3565b506000620001d3565b8280546200023990620003c3565b90600052602060002090601f0160209004810192826200025d5760008555620002a8565b82601f106200027857805160ff1916838001178555620002a8565b82800160010185558215620002a8579182015b82811115620002a85782518255916020019190600101906200028b565b50620002b6929150620002ba565b5090565b5b80821115620002b65760008155600101620002bb565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620002fb57600080fd5b82516001600160401b03808211156200031357600080fd5b818501915085601f8301126200032857600080fd5b8151818111156200033d576200033d620002d1565b604051601f8201601f19908116603f01168101908382118183101715620003685762000368620002d1565b8160405282815288868487010111156200038157600080fd5b600093505b82841015620003a5578484018601518185018701529285019262000386565b82841115620003b75760008684830101525b98975050505050505050565b600181811c90821680620003d857607f821691505b60208210811415620003fa57634e487b7160e01b600052602260045260246000fd5b50919050565b612f0680620004106000396000f3fe608060405234801561001057600080fd5b50600436106101ce5760003560e01c80638456cb5911610104578063ca15c873116100a2578063e985e9c511610071578063e985e9c514610475578063f23a6e61146104b1578063f242432a146104d0578063f5298aca146104e357600080fd5b8063ca15c87314610401578063d539139314610414578063d547741f1461043b578063e63ab1e91461044e57600080fd5b8063a217fddf116100de578063a217fddf146103a7578063a22cb465146103af578063bc197c81146103c2578063bd85b039146103e157600080fd5b80638456cb591461033d5780639010d07c1461034557806391d148541461037057600080fd5b80632f2ff15d116101715780634e1273f41161014b5780634e1273f4146102ec5780635c975abb1461030c5780636b20c45414610317578063731133e91461032a57600080fd5b80632f2ff15d146102be57806336568abe146102d15780633f4ba83a146102e457600080fd5b8063150b7a02116101ad578063150b7a021461023c5780631f7fdffa14610273578063248a9ca3146102885780632eb2c2d6146102ab57600080fd5b8062fdd58e146101d357806301ffc9a7146101f95780630e89341c1461021c575b600080fd5b6101e66101e13660046124f8565b6104f6565b6040519081526020015b60405180910390f35b61020c61020736600461253b565b6105a4565b60405190151581526020016101f0565b61022f61022a366004612558565b6105af565b6040516101f091906125c9565b61025a61024a366004612693565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101f0565b610286610281366004612790565b610643565b005b6101e6610296366004612558565b60009081526020819052604090206001015490565b6102866102b936600461281d565b6106f1565b6102866102cc3660046128c7565b610793565b6102866102df3660046128c7565b6107be565b61028661084a565b6102ff6102fa3660046128f3565b6108f0565b6040516101f091906129f9565b60055460ff1661020c565b610286610325366004612a0c565b610a2e565b610286610338366004612a80565b610ab3565b610286610b5b565b610358610353366004612ac9565b610bff565b6040516001600160a01b0390911681526020016101f0565b61020c61037e3660046128c7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101e6600081565b6102866103bd366004612aeb565b610c1e565b61025a6103d036600461281d565b63bc197c8160e01b95945050505050565b6101e66103ef366004612558565b60009081526006602052604090205490565b6101e661040f366004612558565b610c29565b6101e67f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102866104493660046128c7565b610c40565b6101e67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61020c610483366004612b27565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61025a6104bf366004612b51565b63f23a6e6160e01b95945050505050565b6102866104de366004612b51565b610c66565b6102866104f1366004612bb6565b610ced565b60006001600160a01b0383166105795760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b600061059e82610e25565b6060600480546105be90612be9565b80601f01602080910402602001604051908101604052809291908181526020018280546105ea90612be9565b80156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b50505050509050919050565b61066d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361037e565b6106df5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e7400000000000000006064820152608401610570565b6106eb84848484610e4a565b50505050565b6001600160a01b03851633148061070d575061070d8533610483565b61077f5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610570565b61078c8585858585611020565b5050505050565b6000828152602081905260409020600101546107af813361128f565b6107b9838361130d565b505050565b6001600160a01b038116331461083c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610570565b610846828261132f565b5050565b6108747f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361037e565b6108e65760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e706175736500000000006064820152608401610570565b6108ee611351565b565b606081518351146109695760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610570565b6000835167ffffffffffffffff811115610985576109856125dc565b6040519080825280602002602001820160405280156109ae578160200160208202803683370190505b50905060005b8451811015610a26576109f98582815181106109d2576109d2612c24565b60200260200101518583815181106109ec576109ec612c24565b60200260200101516104f6565b828281518110610a0b57610a0b612c24565b6020908102919091010152610a1f81612c50565b90506109b4565b509392505050565b6001600160a01b038316331480610a4a5750610a4a8333610483565b610aa85760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610570565b6107b98383836113ed565b610add7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63361037e565b610b4f5760405162461bcd60e51b815260206004820152603860248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f68617665206d696e74657220726f6c6520746f206d696e7400000000000000006064820152608401610570565b6106eb84848484611637565b610b857f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361037e565b610bf75760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f207061757365000000000000006064820152608401610570565b6108ee611749565b6000828152600160205260408120610c1790836117d1565b9392505050565b6108463383836117dd565b600081815260016020526040812061059e906118d2565b600082815260208190526040902060010154610c5c813361128f565b6107b9838361132f565b6001600160a01b038516331480610c825750610c828533610483565b610ce05760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610570565b61078c85858585856118dc565b6001600160a01b038316331480610d095750610d098333610483565b610d675760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610570565b6107b9838383611a7e565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610846576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610dcc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610c17836001600160a01b038416611bfb565b60006001600160e01b03198216630271189760e51b148061059e575061059e82611c4a565b6001600160a01b038416610eaa5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610570565b8151835114610f0c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610570565b33610f1c81600087878787611c8a565b60005b8451811015610fb857838181518110610f3a57610f3a612c24565b602002602001015160026000878481518110610f5857610f58612c24565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254610fa09190612c6b565b90915550819050610fb081612c50565b915050610f1f565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611009929190612c83565b60405180910390a461078c81600087878787611da4565b81518351146110825760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610570565b6001600160a01b0384166110e65760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610570565b336110f5818787878787611c8a565b60005b845181101561122157600085828151811061111557611115612c24565b60200260200101519050600085838151811061113357611133612c24565b60209081029190910181015160008481526002835260408082206001600160a01b038e1683529093529190912054909150818110156111c75760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610570565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611206908490612c6b565b925050819055505050508061121a90612c50565b90506110f8565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611271929190612c83565b60405180910390a4611287818787878787611da4565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610846576112cb816001600160a01b03166014611f59565b6112d6836020611f59565b6040516020016112e7929190612cb1565b60408051601f198184030181529082905262461bcd60e51b8252610570916004016125c9565b6113178282610d72565b60008281526001602052604090206107b99082610e10565b6113398282612102565b60008281526001602052604090206107b99082612181565b60055460ff166113a35760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610570565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03831661144f5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610570565b80518251146114b15760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610570565b60003390506114d481856000868660405180602001604052806000815250611c8a565b60005b83518110156115d85760008482815181106114f4576114f4612c24565b60200260200101519050600084838151811061151257611512612c24565b60209081029190910181015160008481526002835260408082206001600160a01b038c16835290935291909120549091508181101561159f5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610570565b60009283526002602090815260408085206001600160a01b038b16865290915290922091039055806115d081612c50565b9150506114d7565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611629929190612c83565b60405180910390a450505050565b6001600160a01b0384166116975760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610570565b336116b7816000876116a888612196565b6116b188612196565b87611c8a565b60008481526002602090815260408083206001600160a01b0389168452909152812080548592906116e9908490612c6b565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461078c816000878787876121e1565b60055460ff161561179c5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610570565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113d03390565b6000610c1783836122ec565b816001600160a01b0316836001600160a01b031614156118655760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610570565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600061059e825490565b6001600160a01b0384166119405760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610570565b336119508187876116a888612196565b60008481526002602090815260408083206001600160a01b038a168452909152902054838110156119d65760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610570565b60008581526002602090815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290611a15908490612c6b565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611a758288888888886121e1565b50505050505050565b6001600160a01b038316611ae05760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610570565b33611b0f81856000611af187612196565b611afa87612196565b60405180602001604052806000815250611c8a565b60008381526002602090815260408083206001600160a01b038816845290915290205482811015611b8e5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610570565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6000818152600183016020526040812054611c425750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561059e565b50600061059e565b60006001600160e01b03198216636cdb3d1360e11b1480611c7b57506001600160e01b031982166303a24d0760e21b145b8061059e575061059e82612316565b611c9886868686868661233b565b6001600160a01b038516611d1f5760005b8351811015611d1d57828181518110611cc457611cc4612c24565b602002602001015160066000868481518110611ce257611ce2612c24565b602002602001015181526020019081526020016000206000828254611d079190612c6b565b90915550611d16905081612c50565b9050611ca9565b505b6001600160a01b0384166112875760005b8351811015611a7557828181518110611d4b57611d4b612c24565b602002602001015160066000868481518110611d6957611d69612c24565b602002602001015181526020019081526020016000206000828254611d8e9190612d32565b90915550611d9d905081612c50565b9050611d30565b6001600160a01b0384163b156112875760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611de89089908990889088908890600401612d49565b602060405180830381600087803b158015611e0257600080fd5b505af1925050508015611e32575060408051601f3d908101601f19168201909252611e2f91810190612da7565b60015b611ee857611e3e612dc4565b806308c379a01415611e785750611e53612de0565b80611e5e5750611e7a565b8060405162461bcd60e51b815260040161057091906125c9565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610570565b6001600160e01b0319811663bc197c8160e01b14611a755760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610570565b60606000611f68836002612e6a565b611f73906002612c6b565b67ffffffffffffffff811115611f8b57611f8b6125dc565b6040519080825280601f01601f191660200182016040528015611fb5576020820181803683370190505b509050600360fc1b81600081518110611fd057611fd0612c24565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611fff57611fff612c24565b60200101906001600160f81b031916908160001a9053506000612023846002612e6a565b61202e906001612c6b565b90505b60018111156120b3577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061206f5761206f612c24565b1a60f81b82828151811061208557612085612c24565b60200101906001600160f81b031916908160001a90535060049490941c936120ac81612e89565b9050612031565b508315610c175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610570565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610846576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610c17836001600160a01b0384166123b4565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106121d0576121d0612c24565b602090810291909101015292915050565b6001600160a01b0384163b156112875760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122259089908990889088908890600401612ea0565b602060405180830381600087803b15801561223f57600080fd5b505af192505050801561226f575060408051601f3d908101601f1916820190925261226c91810190612da7565b60015b61227b57611e3e612dc4565b6001600160e01b0319811663f23a6e6160e01b14611a755760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610570565b600082600001828154811061230357612303612c24565b9060005260206000200154905092915050565b60006001600160e01b03198216635a05180f60e01b148061059e575061059e826124a7565b60055460ff16156112875760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c652070617573656400000000000000000000000000000000000000006064820152608401610570565b6000818152600183016020526040812054801561249d5760006123d8600183612d32565b85549091506000906123ec90600190612d32565b905081811461245157600086600001828154811061240c5761240c612c24565b906000526020600020015490508087600001848154811061242f5761242f612c24565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061246257612462612ee3565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061059e565b600091505061059e565b60006001600160e01b03198216637965db0b60e01b148061059e57506301ffc9a760e01b6001600160e01b031983161461059e565b80356001600160a01b03811681146124f357600080fd5b919050565b6000806040838503121561250b57600080fd5b612514836124dc565b946020939093013593505050565b6001600160e01b03198116811461253857600080fd5b50565b60006020828403121561254d57600080fd5b8135610c1781612522565b60006020828403121561256a57600080fd5b5035919050565b60005b8381101561258c578181015183820152602001612574565b838111156106eb5750506000910152565b600081518084526125b5816020860160208601612571565b601f01601f19169290920160200192915050565b602081526000610c17602083018461259d565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612618576126186125dc565b6040525050565b600082601f83011261263057600080fd5b813567ffffffffffffffff81111561264a5761264a6125dc565b604051612661601f8301601f1916602001826125f2565b81815284602083860101111561267657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156126a957600080fd5b6126b2856124dc565b93506126c0602086016124dc565b925060408501359150606085013567ffffffffffffffff8111156126e357600080fd5b6126ef8782880161261f565b91505092959194509250565b600067ffffffffffffffff821115612715576127156125dc565b5060051b60200190565b600082601f83011261273057600080fd5b8135602061273d826126fb565b60405161274a82826125f2565b83815260059390931b850182019282810191508684111561276a57600080fd5b8286015b84811015612785578035835291830191830161276e565b509695505050505050565b600080600080608085870312156127a657600080fd5b6127af856124dc565b9350602085013567ffffffffffffffff808211156127cc57600080fd5b6127d88883890161271f565b945060408701359150808211156127ee57600080fd5b6127fa8883890161271f565b9350606087013591508082111561281057600080fd5b506126ef8782880161261f565b600080600080600060a0868803121561283557600080fd5b61283e866124dc565b945061284c602087016124dc565b9350604086013567ffffffffffffffff8082111561286957600080fd5b61287589838a0161271f565b9450606088013591508082111561288b57600080fd5b61289789838a0161271f565b935060808801359150808211156128ad57600080fd5b506128ba8882890161261f565b9150509295509295909350565b600080604083850312156128da57600080fd5b823591506128ea602084016124dc565b90509250929050565b6000806040838503121561290657600080fd5b823567ffffffffffffffff8082111561291e57600080fd5b818501915085601f83011261293257600080fd5b8135602061293f826126fb565b60405161294c82826125f2565b83815260059390931b850182019282810191508984111561296c57600080fd5b948201945b8386101561299157612982866124dc565b82529482019490820190612971565b965050860135925050808211156129a757600080fd5b506129b48582860161271f565b9150509250929050565b600081518084526020808501945080840160005b838110156129ee578151875295820195908201906001016129d2565b509495945050505050565b602081526000610c1760208301846129be565b600080600060608486031215612a2157600080fd5b612a2a846124dc565b9250602084013567ffffffffffffffff80821115612a4757600080fd5b612a538783880161271f565b93506040860135915080821115612a6957600080fd5b50612a768682870161271f565b9150509250925092565b60008060008060808587031215612a9657600080fd5b612a9f856124dc565b93506020850135925060408501359150606085013567ffffffffffffffff8111156126e357600080fd5b60008060408385031215612adc57600080fd5b50508035926020909101359150565b60008060408385031215612afe57600080fd5b612b07836124dc565b915060208301358015158114612b1c57600080fd5b809150509250929050565b60008060408385031215612b3a57600080fd5b612b43836124dc565b91506128ea602084016124dc565b600080600080600060a08688031215612b6957600080fd5b612b72866124dc565b9450612b80602087016124dc565b93506040860135925060608601359150608086013567ffffffffffffffff811115612baa57600080fd5b6128ba8882890161261f565b600080600060608486031215612bcb57600080fd5b612bd4846124dc565b95602085013595506040909401359392505050565b600181811c90821680612bfd57607f821691505b60208210811415612c1e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612c6457612c64612c3a565b5060010190565b60008219821115612c7e57612c7e612c3a565b500190565b604081526000612c9660408301856129be565b8281036020840152612ca881856129be565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612ce9816017850160208801612571565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612d26816028840160208801612571565b01602801949350505050565b600082821015612d4457612d44612c3a565b500390565b60006001600160a01b03808816835280871660208401525060a06040830152612d7560a08301866129be565b8281036060840152612d8781866129be565b90508281036080840152612d9b818561259d565b98975050505050505050565b600060208284031215612db957600080fd5b8151610c1781612522565b600060033d1115612ddd5760046000803e5060005160e01c5b90565b600060443d1015612dee5790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612e1e57505050505090565b8285019150815181811115612e365750505050505090565b843d8701016020828501011115612e505750505050505090565b612e5f602082860101876125f2565b509095945050505050565b6000816000190483118215151615612e8457612e84612c3a565b500290565b600081612e9857612e98612c3a565b506000190190565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152612ed860a083018461259d565b979650505050505050565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000809000a";
var isSuperArgs$s = function isSuperArgs(xs) {
return xs.length > 1;
};
var ERC1155PresetMinterPauserSupplyHolder__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ERC1155PresetMinterPauserSupplyHolder__factory, _ContractFactory);
function ERC1155PresetMinterPauserSupplyHolder__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$s(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1b, _bytecode$s, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ERC1155PresetMinterPauserSupplyHolder__factory.prototype;
_proto.deploy = function deploy(uri, overrides) {
return _ContractFactory.prototype.deploy.call(this, uri, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(uri, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, uri, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ERC1155PresetMinterPauserSupplyHolder__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1b);
};
ERC1155PresetMinterPauserSupplyHolder__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1b, signerOrProvider);
};
return ERC1155PresetMinterPauserSupplyHolder__factory;
}(ContractFactory);
ERC1155PresetMinterPauserSupplyHolder__factory.bytecode = _bytecode$s;
ERC1155PresetMinterPauserSupplyHolder__factory.abi = _abi$1b;
var _abi$1c = [{
inputs: [],
stateMutability: "payable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "ERC20PaymentReleased",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}],
name: "PayeeAdded",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReleased",
type: "event"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "payee",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "payeeCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "shares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalShares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$t = "0x6080604052610d99806100136000396000f3fe6080604052600436106100ca5760003560e01c80638b83209b11610074578063d79779b21161004e578063d79779b21461029d578063e33b7de3146102d3578063e4fc6b6d146102e857600080fd5b80638b83209b146101f95780639852595c14610231578063ce7c2ac21461026757600080fd5b8063406072a9116100a5578063406072a91461017357806348b75044146101b957806363453ae1146101d957600080fd5b8062dbe10914610118578063191655871461013c5780633a98ef391461015e57600080fd5b36610113577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561012457600080fd5b506004545b6040519081526020015b60405180910390f35b34801561014857600080fd5b5061015c610157366004610bac565b6102fd565b005b34801561016a57600080fd5b50600054610129565b34801561017f57600080fd5b5061012961018e366004610bc9565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156101c557600080fd5b5061015c6101d4366004610bc9565b6104b3565b3480156101e557600080fd5b5061015c6101f4366004610bac565b61071e565b34801561020557600080fd5b50610219610214366004610c02565b610772565b6040516001600160a01b039091168152602001610133565b34801561023d57600080fd5b5061012961024c366004610bac565b6001600160a01b031660009081526003602052604090205490565b34801561027357600080fd5b50610129610282366004610bac565b6001600160a01b031660009081526002602052604090205490565b3480156102a957600080fd5b506101296102b8366004610bac565b6001600160a01b031660009081526005602052604090205490565b3480156102df57600080fd5b50600154610129565b3480156102f457600080fd5b5061015c6107a2565b6001600160a01b0381166000908152600260205260409020546103765760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b600061038160015490565b61038b9047610c31565b905060006103b883836103b3866001600160a01b031660009081526003602052604090205490565b6107f4565b90508061041b5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b606482015260840161036d565b6001600160a01b03831660009081526003602052604081208054839290610443908490610c31565b92505081905550806001600082825461045c9190610c31565b9091555061046c90508382610839565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b6001600160a01b0381166000908152600260205260409020546105275760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b606482015260840161036d565b6001600160a01b0382166000908152600560205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b79190610c49565b6105c19190610c31565b905060006105fa83836103b387876001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b90508061065d5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b606482015260840161036d565b6001600160a01b03808516600090815260066020908152604080832093871683529290529081208054839290610694908490610c31565b90915550506001600160a01b038416600090815260056020526040812080548392906106c1908490610c31565b909155506106d29050848483610957565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60005b60045481101561076e5761075c826004838154811061074257610742610c62565b6000918252602090912001546001600160a01b03166104b3565b8061076681610c78565b915050610721565b5050565b60006004828154811061078757610787610c62565b6000918252602090912001546001600160a01b031692915050565b60005b6004548110156107f1576107df600482815481106107c5576107c5610c62565b6000918252602090912001546001600160a01b03166102fd565b806107e981610c78565b9150506107a5565b50565b600080546001600160a01b03851682526002602052604082205483919061081b9086610c93565b6108259190610cb2565b61082f9190610cd4565b90505b9392505050565b804710156108895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161036d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108d6576040519150601f19603f3d011682016040523d82523d6000602084013e6108db565b606091505b50509050806109525760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161036d565b505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610952928692916000916109fc918516908490610a8c565b8051909150156109525780806020019051810190610a1a9190610ceb565b6109525760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161036d565b606061082f848460008585843b610ae55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036d565b600080866001600160a01b03168587604051610b019190610d3d565b60006040518083038185875af1925050503d8060008114610b3e576040519150601f19603f3d011682016040523d82523d6000602084013e610b43565b606091505b5091509150610b53828286610b5e565b979650505050505050565b60608315610b6d575081610832565b825115610b7d5782518084602001fd5b8160405162461bcd60e51b815260040161036d9190610d59565b6001600160a01b03811681146107f157600080fd5b600060208284031215610bbe57600080fd5b813561083281610b97565b60008060408385031215610bdc57600080fd5b8235610be781610b97565b91506020830135610bf781610b97565b809150509250929050565b600060208284031215610c1457600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c4457610c44610c1b565b500190565b600060208284031215610c5b57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610c8c57610c8c610c1b565b5060010190565b6000816000190483118215151615610cad57610cad610c1b565b500290565b600082610ccf57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610ce657610ce6610c1b565b500390565b600060208284031215610cfd57600080fd5b8151801515811461083257600080fd5b60005b83811015610d28578181015183820152602001610d10565b83811115610d37576000848401525b50505050565b60008251610d4f818460208701610d0d565b9190910192915050565b6020815260008251806020840152610d78816040850160208701610d0d565b601f01601f1916919091016040019291505056fea164736f6c6343000809000a";
var isSuperArgs$t = function isSuperArgs(xs) {
return xs.length > 1;
};
var PaymentSplitter__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(PaymentSplitter__factory, _ContractFactory);
function PaymentSplitter__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$t(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1c, _bytecode$t, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = PaymentSplitter__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
PaymentSplitter__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1c);
};
PaymentSplitter__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1c, signerOrProvider);
};
return PaymentSplitter__factory;
}(ContractFactory);
PaymentSplitter__factory.bytecode = _bytecode$t;
PaymentSplitter__factory.abi = _abi$1c;
var _abi$1d = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "contract IERC20Upgradeable",
name: "token",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "ERC20PaymentReleased",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}],
name: "PayeeAdded",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReleased",
type: "event"
}, {
inputs: [{
internalType: "contract IERC20Upgradeable",
name: "token",
type: "address"
}],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "payee",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "payeeCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20Upgradeable",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20Upgradeable",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "shares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20Upgradeable",
name: "token",
type: "address"
}],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalShares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$u = "0x608060405234801561001057600080fd5b50610d9c806100206000396000f3fe6080604052600436106100ca5760003560e01c80638b83209b11610074578063d79779b21161004e578063d79779b21461029d578063e33b7de3146102d3578063e4fc6b6d146102e857600080fd5b80638b83209b146101f95780639852595c14610231578063ce7c2ac21461026757600080fd5b8063406072a9116100a5578063406072a91461017357806348b75044146101b957806363453ae1146101d957600080fd5b8062dbe10914610118578063191655871461013c5780633a98ef391461015e57600080fd5b36610113577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561012457600080fd5b506037545b6040519081526020015b60405180910390f35b34801561014857600080fd5b5061015c610157366004610baf565b6102fd565b005b34801561016a57600080fd5b50603354610129565b34801561017f57600080fd5b5061012961018e366004610bcc565b6001600160a01b03918216600090815260396020908152604080832093909416825291909152205490565b3480156101c557600080fd5b5061015c6101d4366004610bcc565b6104b3565b3480156101e557600080fd5b5061015c6101f4366004610baf565b61071e565b34801561020557600080fd5b50610219610214366004610c05565b610772565b6040516001600160a01b039091168152602001610133565b34801561023d57600080fd5b5061012961024c366004610baf565b6001600160a01b031660009081526036602052604090205490565b34801561027357600080fd5b50610129610282366004610baf565b6001600160a01b031660009081526035602052604090205490565b3480156102a957600080fd5b506101296102b8366004610baf565b6001600160a01b031660009081526038602052604090205490565b3480156102df57600080fd5b50603454610129565b3480156102f457600080fd5b5061015c6107a2565b6001600160a01b0381166000908152603560205260409020546103765760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b600061038160345490565b61038b9047610c34565b905060006103b883836103b3866001600160a01b031660009081526036602052604090205490565b6107f4565b90508061041b5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b606482015260840161036d565b6001600160a01b03831660009081526036602052604081208054839290610443908490610c34565b92505081905550806034600082825461045c9190610c34565b9091555061046c9050838261083c565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b6001600160a01b0381166000908152603560205260409020546105275760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b606482015260840161036d565b6001600160a01b0382166000908152603860205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561057f57600080fd5b505afa158015610593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b79190610c4c565b6105c19190610c34565b905060006105fa83836103b387876001600160a01b03918216600090815260396020908152604080832093909416825291909152205490565b90508061065d5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b606482015260840161036d565b6001600160a01b03808516600090815260396020908152604080832093871683529290529081208054839290610694908490610c34565b90915550506001600160a01b038416600090815260386020526040812080548392906106c1908490610c34565b909155506106d2905084848361095a565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60005b60375481101561076e5761075c826037838154811061074257610742610c65565b6000918252602090912001546001600160a01b03166104b3565b8061076681610c7b565b915050610721565b5050565b60006037828154811061078757610787610c65565b6000918252602090912001546001600160a01b031692915050565b60005b6037548110156107f1576107df603782815481106107c5576107c5610c65565b6000918252602090912001546001600160a01b03166102fd565b806107e981610c7b565b9150506107a5565b50565b6033546001600160a01b0384166000908152603560205260408120549091839161081e9086610c96565b6108289190610cb5565b6108329190610cd7565b90505b9392505050565b8047101561088c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161036d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108d9576040519150601f19603f3d011682016040523d82523d6000602084013e6108de565b606091505b50509050806109555760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161036d565b505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610955928692916000916109ff918516908490610a8f565b8051909150156109555780806020019051810190610a1d9190610cee565b6109555760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161036d565b6060610832848460008585843b610ae85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036d565b600080866001600160a01b03168587604051610b049190610d40565b60006040518083038185875af1925050503d8060008114610b41576040519150601f19603f3d011682016040523d82523d6000602084013e610b46565b606091505b5091509150610b56828286610b61565b979650505050505050565b60608315610b70575081610835565b825115610b805782518084602001fd5b8160405162461bcd60e51b815260040161036d9190610d5c565b6001600160a01b03811681146107f157600080fd5b600060208284031215610bc157600080fd5b813561083581610b9a565b60008060408385031215610bdf57600080fd5b8235610bea81610b9a565b91506020830135610bfa81610b9a565b809150509250929050565b600060208284031215610c1757600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c4757610c47610c1e565b500190565b600060208284031215610c5e57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610c8f57610c8f610c1e565b5060010190565b6000816000190483118215151615610cb057610cb0610c1e565b500290565b600082610cd257634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610ce957610ce9610c1e565b500390565b600060208284031215610d0057600080fd5b8151801515811461083557600080fd5b60005b83811015610d2b578181015183820152602001610d13565b83811115610d3a576000848401525b50505050565b60008251610d52818460208701610d10565b9190910192915050565b6020815260008251806020840152610d7b816040850160208701610d10565b601f01601f1916919091016040019291505056fea164736f6c6343000809000a";
var isSuperArgs$u = function isSuperArgs(xs) {
return xs.length > 1;
};
var PaymentSplitterUpgradeable__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(PaymentSplitterUpgradeable__factory, _ContractFactory);
function PaymentSplitterUpgradeable__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$u(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1d, _bytecode$u, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = PaymentSplitterUpgradeable__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
PaymentSplitterUpgradeable__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1d);
};
PaymentSplitterUpgradeable__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1d, signerOrProvider);
};
return PaymentSplitterUpgradeable__factory;
}(ContractFactory);
PaymentSplitterUpgradeable__factory.bytecode = _bytecode$u;
PaymentSplitterUpgradeable__factory.abi = _abi$1d;
var _abi$1e = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "address",
name: "_vrfCoordinator",
type: "address"
}, {
internalType: "address",
name: "_linkToken",
type: "address"
}, {
internalType: "bytes32",
name: "_keyHash",
type: "bytes32"
}, {
internalType: "uint256",
name: "_fees",
type: "uint256"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "packId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "rewardContract",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "creator",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "packTotalSupply",
type: "uint256"
}, {
components: [{
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "uint256",
name: "openStart",
type: "uint256"
}],
indexed: false,
internalType: "struct Pack.PackState",
name: "packState",
type: "tuple"
}, {
components: [{
internalType: "address",
name: "source",
type: "address"
}, {
internalType: "uint256[]",
name: "tokenIds",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amountsPacked",
type: "uint256[]"
}, {
internalType: "uint256",
name: "rewardsPerOpen",
type: "uint256"
}],
indexed: false,
internalType: "struct Pack.Rewards",
name: "rewards",
type: "tuple"
}],
name: "PackCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "packId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "opener",
type: "address"
}, {
indexed: false,
internalType: "bytes32",
name: "requestId",
type: "bytes32"
}, {
indexed: true,
internalType: "address",
name: "rewardContract",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "rewardIds",
type: "uint256[]"
}],
name: "PackOpenFulfilled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "packId",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "opener",
type: "address"
}, {
indexed: false,
internalType: "bytes32",
name: "requestId",
type: "bytes32"
}],
name: "PackOpenRequest",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Paused",
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: [{
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}],
name: "Unpaused",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "PAUSER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_packId",
type: "uint256"
}],
name: "creator",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "address",
name: "",
type: "address"
}],
name: "currentRequestId",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_packId",
type: "uint256"
}],
name: "getPack",
outputs: [{
components: [{
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "uint256",
name: "openStart",
type: "uint256"
}],
internalType: "struct Pack.PackState",
name: "pack",
type: "tuple"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_packId",
type: "uint256"
}],
name: "getPackWithRewards",
outputs: [{
components: [{
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "uint256",
name: "openStart",
type: "uint256"
}],
internalType: "struct Pack.PackState",
name: "pack",
type: "tuple"
}, {
internalType: "uint256",
name: "packTotalSupply",
type: "uint256"
}, {
internalType: "address",
name: "source",
type: "address"
}, {
internalType: "uint256[]",
name: "tokenIds",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amountsPacked",
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "mint",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "mintBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nextTokenId",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_operator",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "_ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "_values",
type: "uint256[]"
}, {
internalType: "bytes",
name: "_data",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_packId",
type: "uint256"
}],
name: "openPack",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "packs",
outputs: [{
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "address",
name: "creator",
type: "address"
}, {
internalType: "uint256",
name: "openStart",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "paused",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
name: "randomnessRequests",
outputs: [{
internalType: "uint256",
name: "packId",
type: "uint256"
}, {
internalType: "address",
name: "opener",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "requestId",
type: "bytes32"
}, {
internalType: "uint256",
name: "randomness",
type: "uint256"
}],
name: "rawFulfillRandomness",
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: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "rewards",
outputs: [{
internalType: "address",
name: "source",
type: "address"
}, {
internalType: "uint256",
name: "rewardsPerOpen",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "uint256",
name: "_newFees",
type: "uint256"
}],
name: "setChainlinkFees",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [{
internalType: "uint256",
name: "_id",
type: "uint256"
}],
name: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_currency",
type: "address"
}, {
internalType: "address",
name: "_to",
type: "address"
}, {
internalType: "uint256",
name: "_amount",
type: "uint256"
}],
name: "transferERC20",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_id",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "vrfFees",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "vrfKeyHash",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$v = "0x60c06040523480156200001157600080fd5b5060405162005def38038062005def833981016040819052620000349162000565565b818686898062000044816200018d565b506005805460ff191690556200006560006200005f620001a6565b620001c2565b620000947f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200005f620001a6565b620000c37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200005f620001a6565b506001600160a01b0391821660a0528116608052600880549282166001600160a01b031993841617905560098054918b16919092161790556010849055600f83905586516200011a90600d9060208a01906200047e565b5062000125620001a6565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620001747f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6200005f620001a6565b6200017f81620001ce565b5050505050505050620006ec565b8051620001a29060049060208401906200047e565b5050565b6000620001bd620002d960201b6200224f1760201c565b905090565b620001a2828262000312565b620001e46000620001de620001a6565b62000355565b620002365760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c650000000000000000000060448201526064015b60405180910390fd5b6127108111156200029e5760405162461bcd60e51b815260206004820152602b60248201527f5061636b3a204270732070726f7669646564206d757374206265206c6573732060448201526a07468616e2031302c3030360ac1b60648201526084016200022d565b600c8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b39060200160405180910390a150565b6008546000906001600160a01b0316331415620002fd575060131936013560601c90565b620001bd6200038060201b6200227a1760201c565b6200032982826200038460201b6200227e1760201c565b6000828152600160209081526040909120620003509183906200231d6200040e821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b3390565b62000390828262000355565b620001a2576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003ca620001a6565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000425836001600160a01b0384166200042c565b9392505050565b600081815260018301602052604081205462000475575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200037a565b5060006200037a565b8280546200048c90620006af565b90600052602060002090601f016020900481019282620004b05760008555620004fb565b82601f10620004cb57805160ff1916838001178555620004fb565b82800160010185558215620004fb579182015b82811115620004fb578251825591602001919060010190620004de565b50620005099291506200050d565b5090565b5b808211156200050957600081556001016200050e565b6001600160a01b03811681146200053a57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b8051620005608162000524565b919050565b600080600080600080600080610100898b0312156200058357600080fd5b8851620005908162000524565b60208a810151919950906001600160401b0380821115620005b057600080fd5b818c0191508c601f830112620005c557600080fd5b815181811115620005da57620005da6200053d565b604051601f8201601f19908116603f011681019083821181831017156200060557620006056200053d565b816040528281528f868487010111156200061e57600080fd5b600093505b8284101562000642578484018601518185018701529285019262000623565b82841115620006545760008684830101525b809c505050505050506200066b60408a0162000553565b95506200067b60608a0162000553565b94506080890151935060a089015192506200069960c08a0162000553565b915060e089015190509295985092959890939650565b600181811c90821680620006c457607f821691505b60208210811415620006e657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516156cf6200072060003960008181611bb901526128e00152600081816114ed01526128b101526156cf6000f3fe608060405234801561001057600080fd5b50600436106103775760003560e01c80638456cb59116101d3578063bc197c8111610104578063e63ab1e9116100a2578063f23a6e611161007c578063f23a6e61146108c7578063f242432a146108da578063f301af42146108ed578063f5298aca1461092057600080fd5b8063e63ab1e91461085c578063e8a3d48514610883578063e985e9c51461088b57600080fd5b8063c87b56dd116100de578063c87b56dd146103ce578063ca15c8731461080f578063d539139314610822578063d547741f1461084957600080fd5b8063bc197c81146107d3578063bd85b039146107e6578063c63adb2b1461080657600080fd5b806394985ddd11610171578063a22cb4651161014b578063a22cb4651461076b578063ac9650d81461077e578063b277ca451461079e578063b84c1392146107b157600080fd5b806394985ddd1461073d5780639db5dbe414610750578063a217fddf1461076357600080fd5b80638da5cb5b116101ad5780638da5cb5b146106d85780639010d07c146106e057806391d14854146106f3578063938e3d7b1461072a57600080fd5b80638456cb591461069d578063895ec54c146106a55780638ba448c2146106c557600080fd5b80632f2ff15d116102ad578063572b6c051161024b5780636b20c454116102255780636b20c45414610666578063731133e91461067957806375794a3c146106875780638423df791461069057600080fd5b8063572b6c05146105ec5780635c975abb1461060e5780635e619b781461061957600080fd5b80634e1273f4116102875780634e1273f41461054a57806350a88c7e1461056a578063510b51581461057d5780635318c48f146105c157600080fd5b80632f2ff15d1461051c57806336568abe1461052f5780633f4ba83a1461054257600080fd5b8063150b7a021161031a578063206b60f9116102f4578063206b60f91461048d578063248a9ca3146104b45780632a55205a146104d75780632eb2c2d61461050957600080fd5b8063150b7a02146104305780631f72d831146104675780631f7fdffa1461047a57600080fd5b80630e89341c116103565780630e89341c146103ce57806310983e57146103ee57806310e34e67146103f757806313af40351461041b57600080fd5b8062fdd58e1461037c57806301ffc9a7146103a2578063041d443e146103c5575b600080fd5b61038f61038a36600461474f565b610933565b6040519081526020015b60405180910390f35b6103b56103b0366004614791565b6109e1565b6040519015158152602001610399565b61038f60105481565b6103e16103dc3660046147ae565b610a0c565b604051610399919061481f565b61038f600f5481565b61040a6104053660046147ae565b610aae565b6040516103999594939291906148ab565b61042e610429366004614905565b610caa565b005b61044e61043e3660046149e9565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610399565b61042e6104753660046147ae565b610de4565b61042e610488366004614aea565b610eea565b61038f7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b61038f6104c23660046147ae565b60009081526020819052604090206001015490565b6104ea6104e5366004614b79565b610f3e565b604080516001600160a01b039093168352602083019190915201610399565b61042e610517366004614b9b565b610fe5565b61042e61052a366004614c49565b611099565b61042e61053d366004614c49565b6110cb565b61042e611167565b61055d610558366004614c79565b61120f565b6040516103999190614d46565b61042e6105783660046147ae565b61134d565b6105a961058b3660046147ae565b6000908152601160205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610399565b61038f6105cf366004614c49565b601460209081526000928352604080842090915290825290205481565b6103b56105fa366004614905565b6008546001600160a01b0391821691161490565b60055460ff166103b5565b6106496106273660046147ae565b601360205260009081526040902080546001909101546001600160a01b031682565b604080519283526001600160a01b03909116602083015201610399565b61042e610674366004614d59565b61180d565b61042e610488366004614dcf565b61038f600b5481565b600e546103b59060ff1681565b61042e6118a4565b6106b86106b33660046147ae565b61194a565b6040516103999190614e1a565b61042e6106d3366004614e3b565b611a45565b6105a9611ad8565b6105a96106ee366004614b79565b611b31565b6103b5610701366004614c49565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61042e610738366004614e58565b611b50565b61042e61074b366004614b79565b611bae565b61042e61075e366004614eca565b611c30565b61038f600081565b61042e610779366004614f0b565b611d5d565b61079161078c366004614f39565b611d6f565b6040516103999190614f9c565b61042e6107ac3660046147ae565b611e64565b6107c46107bf3660046147ae565b611ebb565b60405161039993929190614ffe565b61044e6107e1366004614b9b565b611f6f565b61038f6107f43660046147ae565b60009081526006602052604090205490565b61038f600c5481565b61038f61081d3660046147ae565b612007565b61038f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61042e610857366004614c49565b61201e565b61038f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6103e1612046565b6103b561089936600461502c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b61044e6108d536600461505a565b6120d4565b61042e6108e836600461505a565b61211f565b6104ea6108fb3660046147ae565b601260205260009081526040902080546003909101546001600160a01b039091169082565b61042e61092e3660046150c3565b6121b8565b60006001600160a01b0383166109b65760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006109ec82612332565b806109db57506001600160e01b0319821663152a902d60e11b1492915050565b6000818152601160205260409020805460609190610a29906150f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a55906150f8565b8015610aa25780601f10610a7757610100808354040283529160200191610aa2565b820191906000526020600020905b815481529060010190602001808311610a8557829003601f168201915b50505050509050919050565b610adb60405180606001604052806060815260200160006001600160a01b03168152602001600081525090565b60008060608060116000878152602001908152602001600020604051806060016040529081600082018054610b0f906150f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906150f8565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050918352505060018201546001600160a01b031660208201526002909101546040909101529450610bc78660009081526006602052604090205490565b6000878152601260209081526040918290208054600190910180548451818502810185019095528085529498506001600160a01b039091169650919290830182828015610c3357602002820191906000526020600020905b815481526020019060010190808311610c1f575b5050505050915060126000878152602001908152602001600020600201805480602002602001604051908101604052809291908181526020018280548015610c9a57602002820191906000526020600020905b815481526020019060010190808311610c86575b5050505050905091939590929450565b610cb7600061070161233d565b610cfc5760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b6001600160a01b03811660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610d835760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e000000000060448201526064016109ad565b600a80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610df1600061070161233d565b610e365760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b612710811115610eae5760405162461bcd60e51b815260206004820152602b60248201527f5061636b3a204270732070726f7669646564206d757374206265206c6573732060448201527f7468616e2031302c30303000000000000000000000000000000000000000000060648201526084016109ad565b600c8190556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b60405162461bcd60e51b815260206004820152602360248201527f5061636b3a2063616e6e6f7420667265656c79206d696e74206d6f7265207061604482015262636b7360e81b60648201526084016109ad565b60095460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b158015610f8657600080fd5b505afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe919061512d565b600c5490925061271090610fd29085615160565b610fdc9190615195565b90509250929050565b610fed61233d565b6001600160a01b0316856001600160a01b0316148061101357506110138561089961233d565b6110855760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f766564000000000000000000000000000060648201526084016109ad565b6110928585858585612347565b5050505050565b6000828152602081905260409020600101546110bc816110b761233d565b6125c1565b6110c6838361263f565b505050565b6110d361233d565b6001600160a01b0316816001600160a01b0316146111595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016109ad565b6111638282612661565b5050565b6111937f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61070161233d565b6112055760405162461bcd60e51b815260206004820152603b60248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f20756e7061757365000000000060648201526084016109ad565b61120d612683565b565b606081518351146112885760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016109ad565b6000835167ffffffffffffffff8111156112a4576112a4614922565b6040519080825280602002602001820160405280156112cd578160200160208202803683370190505b50905060005b8451811015611345576113188582815181106112f1576112f16151a9565b602002602001015185838151811061130b5761130b6151a9565b6020026020010151610933565b82828151811061132a5761132a6151a9565b602090810291909101015261133e816151bf565b90506112d3565b509392505050565b60055460ff16156113935760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109ad565b6000818152601160205260408082208151606081019092528054829082906113ba906150f8565b80601f01602080910402602001604051908101604052809291908181526020018280546113e6906150f8565b80156114335780601f1061140857610100808354040283529160200191611433565b820191906000526020600020905b81548152906001019060200180831161141657829003601f168201915b505050918352505060018201546001600160a01b031660208201526002909101546040918201528101519091504210156114d55760405162461bcd60e51b815260206004820152603960248201527f5061636b3a207468652077696e646f7720746f206f70656e207061636b73206860448201527f6173206e6f742073746172746564206f7220636c6f7365642e0000000000000060648201526084016109ad565b600f546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561153757600080fd5b505afa15801561154b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156f91906151da565b10156115e35760405162461bcd60e51b815260206004820152603460248201527f5061636b3a204e6f7420656e6f756768204c494e4b20746f2066756c66696c6c60448201527f2072616e646f6d6e65737320726571756573742e00000000000000000000000060648201526084016109ad565b60006115f66115f061233d565b84610933565b116116695760405162461bcd60e51b815260206004820152602f60248201527f5061636b3a2073656e646572206f776e73206e6f207061636b73206f6620746860448201527f6520676976656e207061636b49642e000000000000000000000000000000000060648201526084016109ad565b60008281526014602052604081209061168061233d565b6001600160a01b031681526020810191909152604001600020541561170d5760405162461bcd60e51b815260206004820152603260248201527f5061636b3a206d757374207761697420666f72207468652070656e64696e672060448201527f7061636b20746f206265206f70656e65642e000000000000000000000000000060648201526084016109ad565b61172061171861233d565b836001612725565b6000611730601054600f546128ad565b9050604051806040016040528084815260200161174b61233d565b6001600160a01b0390811690915260008381526013602090815260408083208551815594820151600190950180546001600160a01b0319169590941694909417909255858152601490915290812082916117a361233d565b6001600160a01b031681526020810191909152604001600020556117c561233d565b6001600160a01b0316837fb5c27afec62496e403fae78e07136ae7c58425e8128c7b680ea24dee8c8d94018360405161180091815260200190565b60405180910390a3505050565b61181561233d565b6001600160a01b0316836001600160a01b0316148061183b575061183b8361089961233d565b6118995760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016109ad565b6110c6838383612a40565b6118d07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61070161233d565b6119425760405162461bcd60e51b815260206004820152603960248201527f455243313135355072657365744d696e7465725061757365723a206d7573742060448201527f686176652070617573657220726f6c6520746f2070617573650000000000000060648201526084016109ad565b61120d612c91565b61197760405180606001604052806060815260200160006001600160a01b03168152602001600081525090565b6000828152601160205260409081902081516060810190925280548290829061199f906150f8565b80601f01602080910402602001604051908101604052809291908181526020018280546119cb906150f8565b8015611a185780601f106119ed57610100808354040283529160200191611a18565b820191906000526020600020905b8154815290600101906020018083116119fb57829003601f168201915b505050918352505060018201546001600160a01b0316602082015260029091015460409091015292915050565b611a52600061070161233d565b611a975760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b600e805460ff19168215159081179091556040519081527f2ebd4f59eaa9d49c5dcd06a0afa8b39bf09928fbd60111acee2f986fa485d09890602001610edf565b600a546001600160a01b031660009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16611b1f5750600090565b600a546001600160a01b03165b905090565b6000828152600160205260408120611b499083612d0d565b9392505050565b611b5d600061070161233d565b611ba25760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b6110c6600d83836145f0565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c265760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0060448201526064016109ad565b6111638282612d19565b611c3d600061070161233d565b611c825760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb90604401602060405180830381600087803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0891906151f3565b905080611d575760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e0000000060448201526064016109ad565b50505050565b611163611d6861233d565b8383612f12565b60608167ffffffffffffffff811115611d8a57611d8a614922565b604051908082528060200260200182016040528015611dbd57816020015b6060815260200190600190039081611da85790505b50905060005b82811015611e5d57611e2d30858584818110611de157611de16151a9565b9050602002810190611df39190615210565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612fff92505050565b828281518110611e3f57611e3f6151a9565b60200260200101819052508080611e55906151bf565b915050611dc3565b5092915050565b611e71600061070161233d565b611eb65760405162461bcd60e51b81526020600482015260166024820152756f6e6c79206d6f64756c652061646d696e20726f6c6560501b60448201526064016109ad565b600f55565b601160205260009081526040902080548190611ed6906150f8565b80601f0160208091040260200160405190810160405280929190818152602001828054611f02906150f8565b8015611f4f5780601f10611f2457610100808354040283529160200191611f4f565b820191906000526020600020905b815481529060010190602001808311611f3257829003601f168201915b50505050600183015460029093015491926001600160a01b031691905083565b6000611f7d60055460ff1690565b15611fbd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109ad565b600080600084806020019051810190611fd6919061525e565b925092509250611ff28984611fe961233d565b8a8a8787613024565b5063bc197c8160e01b98975050505050505050565b60008181526001602052604081206109db906134b1565b60008281526020819052604090206001015461203c816110b761233d565b6110c68383612661565b600d8054612053906150f8565b80601f016020809104026020016040519081016040528092919081815260200182805461207f906150f8565b80156120cc5780601f106120a1576101008083540402835291602001916120cc565b820191906000526020600020905b8154815290600101906020018083116120af57829003601f168201915b505050505081565b60405162461bcd60e51b815260206004820152601e60248201527f5061636b3a204d75737420757365206261746368207472616e736665722e000060448201526000906064016109ad565b61212761233d565b6001600160a01b0316856001600160a01b0316148061214d575061214d8561089961233d565b6121ab5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016109ad565b61109285858585856134bb565b6121c061233d565b6001600160a01b0316836001600160a01b031614806121e657506121e68361089961233d565b6122445760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b60648201526084016109ad565b6110c6838383612725565b6008546000906001600160a01b0316331415612272575060131936013560601c90565b503390565b90565b3390565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611163576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556122d961233d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611b49836001600160a01b038416613677565b60006109db826136c6565b6000611b2c61224f565b81518351146123a95760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016109ad565b6001600160a01b03841661240d5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016109ad565b600061241761233d565b90506124278187878787876136eb565b60005b8451811015612553576000858281518110612447576124476151a9565b602002602001015190506000858381518110612465576124656151a9565b60209081029190910181015160008481526002835260408082206001600160a01b038e1683529093529190912054909150818110156124f95760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016109ad565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906125389084906152f3565b925050819055505050508061254c906151bf565b905061242a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516125a392919061530b565b60405180910390a46125b981878787878761381b565b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611163576125fd816001600160a01b031660146139d0565b6126088360206139d0565b604051602001612619929190615339565b60408051601f198184030181529082905262461bcd60e51b82526109ad9160040161481f565b612649828261227e565b60008281526001602052604090206110c6908261231d565b61266b8282613b79565b60008281526001602052604090206110c69082613c16565b60055460ff166126d55760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016109ad565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61270861233d565b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0383166127875760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016109ad565b600061279161233d565b90506127c1818560006127a387613c2b565b6127ac87613c2b565b604051806020016040528060008152506136eb565b60008381526002602090815260408083206001600160a01b0388168452909152902054828110156128405760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016109ad565b60008481526002602090815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634000aea07f00000000000000000000000000000000000000000000000000000000000000008486600060405160200161291d929190918252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161294a939291906153ba565b602060405180830381600087803b15801561296457600080fd5b505af1158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c91906151f3565b50600083815260076020818152604080842054815180840189905280830186905230606082015260808082018390528351808303909101815260a0909101909252815191830191909120938790529190526129f89060016152f3565b600085815260076020526040902055612a388482604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b949350505050565b6001600160a01b038316612aa25760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016109ad565b8051825114612b045760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016109ad565b6000612b0e61233d565b9050612b2e818560008686604051806020016040528060008152506136eb565b60005b8351811015612c32576000848281518110612b4e57612b4e6151a9565b602002602001015190506000848381518110612b6c57612b6c6151a9565b60209081029190910181015160008481526002835260408082206001600160a01b038c168352909352919091205490915081811015612bf95760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016109ad565b60009283526002602090815260408085206001600160a01b038b1686529091529092209103905580612c2a816151bf565b915050612b31565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612c8392919061530b565b60405180910390a450505050565b60055460ff1615612cd75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109ad565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861270861233d565b6000611b498383613c76565b60008281526013602090815260408083208151808301835281548082526001928301546001600160a01b039081168387018190528288526014875285882081895287528588208890558288526012875285882086516080810188528154909316835294850180548751818a0281018a01909852808852949893979196939592949293858301939092830182828015612dd057602002820191906000526020600020905b815481526020019060010190808311612dbc575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612e2857602002820191906000526020600020905b815481526020019060010190808311612e14575b505050505081526020016003820154815250509050600080612e4b858885613ca0565b8451604051631759616b60e11b81529294509092506001600160a01b031690632eb2c2d690612e849030908890879087906004016153e2565b600060405180830381600087803b158015612e9e57600080fd5b505af1158015612eb2573d6000803e3d6000fd5b5050505082600001516001600160a01b0316846001600160a01b0316867f9cae8e743935573869e2fe7223782448d71211235c93076166106782de1c234f8b86604051612f0092919061543d565b60405180910390a45050505050505050565b816001600160a01b0316836001600160a01b03161415612f9a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016109ad565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611800565b6060611b49838360405180606001604052806027815260200161569c60279139613f2d565b60055460ff161561306a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109ad565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038616906301ffc9a79060240160206040518083038186803b1580156130b057600080fd5b505afa1580156130c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e891906151f3565b61315a5760405162461bcd60e51b815260206004820152603260248201527f5061636b3a2072657761726420636f6e747261637420646f6573206e6f74206960448201527f6d706c656d656e742045524320313135352e000000000000000000000000000060648201526084016109ad565b6001600160a01b03871660009081527f0781d7cac9c378efa22a7481e4d4d29704a680ddf504b3bc50b517700ee11e6c602052604090205460ff166132075760405162461bcd60e51b815260206004820152603c60248201527f5061636b3a204f6e6c79206163636f756e74732077697468204d494e5445525f60448201527f524f4c452063616e2063616c6c20746869732066756e6374696f6e2e0000000060648201526084016109ad565b600084511161327e5760405162461bcd60e51b815260206004820152603260248201527f5061636b3a204d757374206372656174652061207061636b207769746820617460448201527f206c65617374206f6e65207265776172642e000000000000000000000000000060648201526084016109ad565b600061328984614018565b90506132958282615456565b156133085760405162461bcd60e51b815260206004820152602960248201527f5061636b3a20696e76616c6964206e756d626572206f6620726577617264732060448201527f706572206f70656e2e000000000000000000000000000000000000000000000060648201526084016109ad565b6000613312614064565b905060006133208484615195565b9050600060405180606001604052808b81526020018c6001600160a01b03168152602001874261335091906152f3565b9052604080516080810182526001600160a01b038c16815260208082018c90528183018b90526060820189905260008781526011825292909220835180519495509193859391926133a5928492910190614674565b50602082810151600180840180546001600160a01b039384166001600160a01b0319918216179091556040958601516002909501949094556000898152601284529490942085518154921691909316178255838101518051859461340e939085019201906146e8565b506040820151805161342a9160028401916020909101906146e8565b50606082015181600301559050506134538c858560405180602001604052806000815250614082565b8b6001600160a01b03168a6001600160a01b0316857fd12628277f61a6acc1f051914551d13cdd8d117e3a5ce322869300fda84be71286868660405161349b9392919061546a565b60405180910390a4505050505050505050505050565b60006109db825490565b6001600160a01b03841661351f5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016109ad565b600061352961233d565b905061354981878761353a88613c2b565b61354388613c2b565b876136eb565b60008481526002602090815260408083206001600160a01b038a168452909152902054838110156135cf5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016109ad565b60008581526002602090815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061360e9084906152f3565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461366e82888888888861418c565b50505050505050565b60008181526001830160205260408120546136be575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109db565b5060006109db565b60006001600160e01b03198216630271189760e51b14806109db57506109db82614297565b6136f98686868686866142d7565b600e5460ff16801561371357506001600160a01b03851615155b801561372757506001600160a01b03841615155b156125b9576001600160a01b03851660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff16806137a957506001600160a01b03841660009081527f7c7a990f752005aea38438cc35abc5417bd322e6c964ec21d52573494225142c602052604090205460ff165b6125b95760405162461bcd60e51b815260206004820152603760248201527f5061636b3a205472616e7366657273206172652072657374726963746564207460448201527f6f205452414e534645525f524f4c4520686f6c6465727300000000000000000060648201526084016109ad565b6001600160a01b0384163b156125b95760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061385f90899089908890889088906004016154e4565b602060405180830381600087803b15801561387957600080fd5b505af19250505080156138a9575060408051601f3d908101601f191682019092526138a691810190615536565b60015b61395f576138b5615553565b806308c379a014156138ef57506138ca61556e565b806138d557506138f1565b8060405162461bcd60e51b81526004016109ad919061481f565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016109ad565b6001600160e01b0319811663bc197c8160e01b1461366e5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016109ad565b606060006139df836002615160565b6139ea9060026152f3565b67ffffffffffffffff811115613a0257613a02614922565b6040519080825280601f01601f191660200182016040528015613a2c576020820181803683370190505b509050600360fc1b81600081518110613a4757613a476151a9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a7657613a766151a9565b60200101906001600160f81b031916908160001a9053506000613a9a846002615160565b613aa59060016152f3565b90505b6001811115613b2a577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613ae657613ae66151a9565b1a60f81b828281518110613afc57613afc6151a9565b60200101906001600160f81b031916908160001a90535060049490941c93613b23816155f8565b9050613aa8565b508315611b495760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016109ad565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615611163576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613bd261233d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611b49836001600160a01b0384166143f1565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613c6557613c656151a9565b602090810291909101015292915050565b6000826000018281548110613c8d57613c8d6151a9565b9060005260206000200154905092915050565b6060806000613cb28460400151614018565b9050600080856060015167ffffffffffffffff811115613cd457613cd4614922565b604051908082528060200260200182016040528015613cfd578160200160208202803683370190505b509450856060015167ffffffffffffffff811115613d1d57613d1d614922565b604051908082528060200260200182016040528015613d46578160200160208202803683370190505b50935060005b8660600151811015613eb1576040805160208082018b905281830184905282518083038401815260609092019092528051910120613d8b908590615456565b915060005b876020015151811015613e9e578388604001518281518110613db457613db46151a9565b6020026020010151613dc691906152f3565b831015613e615787602001518181518110613de357613de36151a9565b6020026020010151878381518110613dfd57613dfd6151a9565b6020026020010181815250506001868381518110613e1d57613e1d6151a9565b602002602001018181525050600188604001518281518110613e4157613e416151a9565b60200260200101818151613e55919061560f565b90525060009350613e9e565b87604001518181518110613e7757613e776151a9565b602002602001015184613e8a91906152f3565b9350613e976001826152f3565b9050613d90565b50613eaa6001826152f3565b9050613d4c565b506000888152601260209081526040909120875181546001600160a01b0319166001600160a01b039091161781558782015180518993613ef89260018501929101906146e8565b5060408201518051613f149160028401916020909101906146e8565b5060608201518160030155905050505050935093915050565b6060833b613fa35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016109ad565b600080856001600160a01b031685604051613fbe9190615626565b600060405180830381855af49150503d8060008114613ff9576040519150601f19603f3d011682016040523d82523d6000602084013e613ffe565b606091505b509150915061400e8282866144e4565b9695505050505050565b6000805b825181101561405e57828181518110614037576140376151a9565b60200260200101518261404a91906152f3565b91506140576001826152f3565b905061401c565b50919050565b600b805490600190600061407883856152f3565b9250508190555090565b6001600160a01b0384166140e25760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016109ad565b60006140ec61233d565b90506140fe8160008761353a88613c2b565b60008481526002602090815260408083206001600160a01b0389168452909152812080548592906141309084906152f3565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611092816000878787875b6001600160a01b0384163b156125b95760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906141d09089908990889088908890600401615642565b602060405180830381600087803b1580156141ea57600080fd5b505af192505050801561421a575060408051601f3d908101601f1916820190925261421791810190615536565b60015b614226576138b5615553565b6001600160e01b0319811663f23a6e6160e01b1461366e5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016109ad565b60006001600160e01b03198216636cdb3d1360e11b14806142c857506001600160e01b031982166303a24d0760e21b145b806109db57506109db8261451d565b6142e5868686868686614542565b6001600160a01b03851661436c5760005b835181101561436a57828181518110614311576143116151a9565b60200260200101516006600086848151811061432f5761432f6151a9565b60200260200101518152602001908152602001600020600082825461435491906152f3565b909155506143639050816151bf565b90506142f6565b505b6001600160a01b0384166125b95760005b835181101561366e57828181518110614398576143986151a9565b6020026020010151600660008684815181106143b6576143b66151a9565b6020026020010151815260200190815260200160002060008282546143db919061560f565b909155506143ea9050816151bf565b905061437d565b600081815260018301602052604081205480156144da57600061441560018361560f565b85549091506000906144299060019061560f565b905081811461448e576000866000018281548110614449576144496151a9565b906000526020600020015490508087600001848154811061446c5761446c6151a9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061449f5761449f615685565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109db565b60009150506109db565b606083156144f3575081611b49565b8251156145035782518084602001fd5b8160405162461bcd60e51b81526004016109ad919061481f565b60006001600160e01b03198216635a05180f60e01b14806109db57506109db826145bb565b60055460ff16156125b95760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201527f7768696c6520706175736564000000000000000000000000000000000000000060648201526084016109ad565b60006001600160e01b03198216637965db0b60e01b14806109db57506301ffc9a760e01b6001600160e01b03198316146109db565b8280546145fc906150f8565b90600052602060002090601f01602090048101928261461e5760008555614664565b82601f106146375782800160ff19823516178555614664565b82800160010185558215614664579182015b82811115614664578235825591602001919060010190614649565b50614670929150614722565b5090565b828054614680906150f8565b90600052602060002090601f0160209004810192826146a25760008555614664565b82601f106146bb57805160ff1916838001178555614664565b82800160010185558215614664579182015b828111156146645782518255916020019190600101906146cd565b82805482825590600052602060002090810192821561466457916020028201828111156146645782518255916020019190600101906146cd565b5b808211156146705760008155600101614723565b6001600160a01b038116811461474c57600080fd5b50565b6000806040838503121561476257600080fd5b823561476d81614737565b946020939093013593505050565b6001600160e01b03198116811461474c57600080fd5b6000602082840312156147a357600080fd5b8135611b498161477b565b6000602082840312156147c057600080fd5b5035919050565b60005b838110156147e25781810151838201526020016147ca565b83811115611d575750506000910152565b6000815180845261480b8160208601602086016147c7565b601f01601f19169290920160200192915050565b602081526000611b4960208301846147f3565b600081516060845261484760608501826147f3565b90506001600160a01b036020840151166020850152604083015160408501528091505092915050565b600081518084526020808501945080840160005b838110156148a057815187529582019590820190600101614884565b509495945050505050565b60a0815260006148be60a0830188614832565b8660208401526001600160a01b038616604084015282810360608401526148e58186614870565b905082810360808401526148f98185614870565b98975050505050505050565b60006020828403121561491757600080fd5b8135611b4981614737565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561495e5761495e614922565b6040525050565b600067ffffffffffffffff82111561497f5761497f614922565b50601f01601f191660200190565b600082601f83011261499e57600080fd5b81356149a981614965565b6040516149b68282614938565b8281528560208487010111156149cb57600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080608085870312156149ff57600080fd5b8435614a0a81614737565b93506020850135614a1a81614737565b925060408501359150606085013567ffffffffffffffff811115614a3d57600080fd5b614a498782880161498d565b91505092959194509250565b600067ffffffffffffffff821115614a6f57614a6f614922565b5060051b60200190565b600082601f830112614a8a57600080fd5b81356020614a9782614a55565b604051614aa48282614938565b83815260059390931b8501820192828101915086841115614ac457600080fd5b8286015b84811015614adf5780358352918301918301614ac8565b509695505050505050565b60008060008060808587031215614b0057600080fd5b8435614b0b81614737565b9350602085013567ffffffffffffffff80821115614b2857600080fd5b614b3488838901614a79565b94506040870135915080821115614b4a57600080fd5b614b5688838901614a79565b93506060870135915080821115614b6c57600080fd5b50614a498782880161498d565b60008060408385031215614b8c57600080fd5b50508035926020909101359150565b600080600080600060a08688031215614bb357600080fd5b8535614bbe81614737565b94506020860135614bce81614737565b9350604086013567ffffffffffffffff80821115614beb57600080fd5b614bf789838a01614a79565b94506060880135915080821115614c0d57600080fd5b614c1989838a01614a79565b93506080880135915080821115614c2f57600080fd5b50614c3c8882890161498d565b9150509295509295909350565b60008060408385031215614c5c57600080fd5b823591506020830135614c6e81614737565b809150509250929050565b60008060408385031215614c8c57600080fd5b823567ffffffffffffffff80821115614ca457600080fd5b818501915085601f830112614cb857600080fd5b81356020614cc582614a55565b604051614cd28282614938565b83815260059390931b8501820192828101915089841115614cf257600080fd5b948201945b83861015614d19578535614d0a81614737565b82529482019490820190614cf7565b96505086013592505080821115614d2f57600080fd5b50614d3c85828601614a79565b9150509250929050565b602081526000611b496020830184614870565b600080600060608486031215614d6e57600080fd5b8335614d7981614737565b9250602084013567ffffffffffffffff80821115614d9657600080fd5b614da287838801614a79565b93506040860135915080821115614db857600080fd5b50614dc586828701614a79565b9150509250925092565b60008060008060808587031215614de557600080fd5b8435614df081614737565b93506020850135925060408501359150606085013567ffffffffffffffff811115614a3d57600080fd5b602081526000611b496020830184614832565b801515811461474c57600080fd5b600060208284031215614e4d57600080fd5b8135611b4981614e2d565b60008060208385031215614e6b57600080fd5b823567ffffffffffffffff80821115614e8357600080fd5b818501915085601f830112614e9757600080fd5b813581811115614ea657600080fd5b866020828501011115614eb857600080fd5b60209290920196919550909350505050565b600080600060608486031215614edf57600080fd5b8335614eea81614737565b92506020840135614efa81614737565b929592945050506040919091013590565b60008060408385031215614f1e57600080fd5b8235614f2981614737565b91506020830135614c6e81614e2d565b60008060208385031215614f4c57600080fd5b823567ffffffffffffffff80821115614f6457600080fd5b818501915085601f830112614f7857600080fd5b813581811115614f8757600080fd5b8660208260051b8501011115614eb857600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614ff157603f19888603018452614fdf8583516147f3565b94509285019290850190600101614fc3565b5092979650505050505050565b60608152600061501160608301866147f3565b6001600160a01b039490941660208301525060400152919050565b6000806040838503121561503f57600080fd5b823561504a81614737565b91506020830135614c6e81614737565b600080600080600060a0868803121561507257600080fd5b853561507d81614737565b9450602086013561508d81614737565b93506040860135925060608601359150608086013567ffffffffffffffff8111156150b757600080fd5b614c3c8882890161498d565b6000806000606084860312156150d857600080fd5b83356150e381614737565b95602085013595506040909401359392505050565b600181811c9082168061510c57607f821691505b6020821081141561405e57634e487b7160e01b600052602260045260246000fd5b60006020828403121561513f57600080fd5b8151611b4981614737565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561517a5761517a61514a565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826151a4576151a461517f565b500490565b634e487b7160e01b600052603260045260246000fd5b60006000198214156151d3576151d361514a565b5060010190565b6000602082840312156151ec57600080fd5b5051919050565b60006020828403121561520557600080fd5b8151611b4981614e2d565b6000808335601e1984360301811261522757600080fd5b83018035915067ffffffffffffffff82111561524257600080fd5b60200191503681900382131561525757600080fd5b9250929050565b60008060006060848603121561527357600080fd5b835167ffffffffffffffff81111561528a57600080fd5b8401601f8101861361529b57600080fd5b80516152a681614965565b6040516152b38282614938565b8281528860208486010111156152c857600080fd5b6152d98360208301602087016147c7565b602088015160409098015190999798509695505050505050565b600082198211156153065761530661514a565b500190565b60408152600061531e6040830185614870565b82810360208401526153308185614870565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516153718160178501602088016147c7565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516153ae8160288401602088016147c7565b01602801949350505050565b6001600160a01b038416815282602082015260606040820152600061533060608301846147f3565b60006001600160a01b03808716835280861660208401525060a0604083015261540e60a0830185614870565b82810360608401526154208185614870565b838103608090940193909352505060008152602001949350505050565b828152604060208201526000612a386040830184614870565b6000826154655761546561517f565b500690565b8381526060602082015260006154836060830185614832565b82810360408401526001600160a01b0384511681526020840151608060208301526154b16080830182614870565b9050604085015182820360408401526154ca8282614870565b915050606085015160608301528092505050949350505050565b60006001600160a01b03808816835280871660208401525060a0604083015261551060a0830186614870565b82810360608401526155228186614870565b905082810360808401526148f981856147f3565b60006020828403121561554857600080fd5b8151611b498161477b565b600060033d11156122775760046000803e5060005160e01c90565b600060443d101561557c5790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156155ac57505050505090565b82850191508151818111156155c45750505050505090565b843d87010160208285010111156155de5750505050505090565b6155ed60208286010187614938565b509095945050505050565b6000816156075761560761514a565b506000190190565b6000828210156156215761562161514a565b500390565b600082516156388184602087016147c7565b9190910192915050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a0608083015261567a60a08301846147f3565b979650505050505050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$v = function isSuperArgs(xs) {
return xs.length > 1;
};
var Pack__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Pack__factory, _ContractFactory);
function Pack__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$v(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1e, _bytecode$v, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Pack__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _uri, _vrfCoordinator, _linkToken, _keyHash, _fees, _trustedForwarder, _royaltyBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _uri, _vrfCoordinator, _linkToken, _keyHash, _fees, _trustedForwarder, _royaltyBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _uri, _vrfCoordinator, _linkToken, _keyHash, _fees, _trustedForwarder, _royaltyBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _uri, _vrfCoordinator, _linkToken, _keyHash, _fees, _trustedForwarder, _royaltyBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Pack__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1e);
};
Pack__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1e, signerOrProvider);
};
return Pack__factory;
}(ContractFactory);
Pack__factory.bytecode = _bytecode$v;
Pack__factory.abi = _abi$1e;
var _abi$1f = [{
inputs: [],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "EtherReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "_newForwarder",
type: "address"
}],
name: "ForwarderUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "currency",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "fee",
type: "uint256"
}],
name: "FundsWithdrawn",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "bytes32",
name: "moduleId",
type: "bytes32"
}, {
indexed: true,
internalType: "address",
name: "module",
type: "address"
}],
name: "ModuleUpdated",
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: [{
indexed: true,
internalType: "address",
name: "protocolControlAddress",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "moduleAddress",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "treasury",
type: "address"
}],
name: "RoyaltyTreasuryUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "_newTreasury",
type: "address"
}],
name: "TreasuryUpdated",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MAX_BPS",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "NATIVE_TOKEN",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newModuleAddress",
type: "address"
}, {
internalType: "uint256",
name: "_moduleType",
type: "uint256"
}],
name: "addModule",
outputs: [{
internalType: "bytes32",
name: "moduleId",
type: "bytes32"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_moduleType",
type: "uint256"
}],
name: "getAllModulesOfType",
outputs: [{
internalType: "address[]",
name: "allModules",
type: "address[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getForwarder",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "address",
name: "moduleAddress",
type: "address"
}],
name: "getRoyaltyTreasury",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
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: "address",
name: "_registry",
type: "address"
}, {
internalType: "address",
name: "_admin",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
name: "initialize",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
name: "modules",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "numOfModuleType",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "registry",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyTreasury",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "setForwarder",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "moduleAddress",
type: "address"
}, {
internalType: "address payable",
name: "_treasury",
type: "address"
}],
name: "setModuleRoyaltyTreasury",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "_treasury",
type: "address"
}],
name: "setRoyaltyTreasury",
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: [{
internalType: "bytes32",
name: "_moduleId",
type: "bytes32"
}, {
internalType: "address",
name: "_newModuleAddress",
type: "address"
}],
name: "updateModule",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "currency",
type: "address"
}],
name: "withdrawFunds",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$w = "0x60806040523480156200001157600080fd5b50600254610100900460ff166200002f5760025460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600254610100900460ff16158015620000c4576002805461ffff19166101011790555b8015620000d7576002805461ff00191690555b5062000102565b6000620000f630620000fc60201b620019931760201c565b15905090565b3b151590565b612a5a80620001126000396000f3fe6080604052600436106101c55760003560e01c806391d14854116100f7578063b0b6cc1a11610095578063d547741f11610064578063d547741f146105e3578063e8a3d48514610603578063f2aab4b314610618578063fd967f471461063857600080fd5b8063b0b6cc1a1461054d578063b9998a2414610583578063c097b1fb146105a3578063ca15c873146105c357600080fd5b8063a0042526116100d1578063a0042526146104c9578063a217fddf146104de578063ac9650d8146104f3578063aca841751461052057600080fd5b806391d1485414610445578063938e3d7b1461048957806396362d32146104a957600080fd5b80633b98a7df116101645780634d8188851161013e5780634d818885146103ab57806354fd4d50146103cb5780637b103999146104055780639010d07c1461042557600080fd5b80633b98a7df1461033e5780633fff7bf81461035e5780634571e3a61461038b57600080fd5b8063248a9ca3116101a0578063248a9ca3146102985780632f2ff15d146102d657806331f7d964146102f657806336568abe1461031e57600080fd5b80620fa9fb1461020957806301ffc9a71461022b57806305e9ca9b1461026057600080fd5b3661020457604080513381523460208201527f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b910160405180910390a1005b600080fd5b34801561021557600080fd5b506102296102243660046123dd565b61064e565b005b34801561023757600080fd5b5061024b610246366004612416565b610c8d565b60405190151581526020015b60405180910390f35b34801561026c57600080fd5b50600754610280906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102a457600080fd5b506102c86102b3366004612440565b60009081526020819052604090206001015490565b604051908152602001610257565b3480156102e257600080fd5b506102296102f1366004612459565b610cb8565b34801561030257600080fd5b5061028073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561032a57600080fd5b50610229610339366004612459565b610ce3565b34801561034a57600080fd5b5061022961035936600461247e565b610d6f565b34801561036a57600080fd5b506102c8610379366004612440565b60046020526000908152604090205481565b34801561039757600080fd5b506102296103a63660046124b1565b610ed3565b3480156103b757600080fd5b506102296103c63660046123dd565b610fe6565b3480156103d757600080fd5b506103f8604051806040016040528060018152602001603160f81b81525081565b60405161025791906125df565b34801561041157600080fd5b50600654610280906001600160a01b031681565b34801561043157600080fd5b506102806104403660046125f2565b61115a565b34801561045157600080fd5b5061024b610460366004612459565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561049557600080fd5b506102296104a4366004612614565b611179565b3480156104b557600080fd5b506102c86104c4366004612686565b611229565b3480156104d557600080fd5b50610280611380565b3480156104ea57600080fd5b506102c8600081565b3480156104ff57600080fd5b5061051361050e3660046126b2565b61142e565b6040516102579190612715565b34801561052c57600080fd5b5061054061053b366004612440565b611523565b6040516102579190612777565b34801561055957600080fd5b50610280610568366004612440565b6003602052600090815260409020546001600160a01b031681565b34801561058f57600080fd5b5061022961059e36600461247e565b611614565b3480156105af57600080fd5b506102296105be366004612459565b61170c565b3480156105cf57600080fd5b506102c86105de366004612440565b611893565b3480156105ef57600080fd5b506102296105fe366004612459565b6118aa565b34801561060f57600080fd5b506103f86118d0565b34801561062457600080fd5b5061028061063336600461247e565b61195e565b34801561064457600080fd5b506102c861271081565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166106f75760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084015b60405180910390fd5b600654604080516361d027b360e01b815290516001600160a01b0390921691839160009184916361d027b3916004808301926020929190829003018186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a91906127c4565b905060008061078884611999565b9050801561079857479150610812565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080f91906127e1565b91505b604051630e78de6f60e31b8152306004820152600090612710906001600160a01b038816906373c6f3789060240160206040518083038186803b15801561085857600080fd5b505afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906127e1565b61089a9085612810565b6108a4919061282f565b90506108b08184612851565b925060008215610a63576040516001600160a01b038a16908590600081818185875af1925050503d8060008114610903576040519150601f19603f3d011682016040523d82523d6000602084013e610908565b606091505b5050809150508061095b5760405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f2077697468647261772066756e6473000000000000000060448201526064016106ee565b6040516001600160a01b038616908390600081818185875af1925050503d80600081146109a4576040519150601f19603f3d011682016040523d82523d6000602084013e6109a9565b606091505b50508091505080610a085760405162461bcd60e51b8152602060048201526024808201527f6661696c656420746f2077697468647261772066756e647320746f20726567696044820152637374727960e01b60648201526084016106ee565b876001600160a01b0316896001600160a01b03167f080a49aa43b33f2f3fe14496cbedde2305f0cc484e98afb78e943cf9881adc8a8685604051610a56929190918252602082015260400190565b60405180910390a3610c82565b60405163a9059cbb60e01b81526001600160a01b038a811660048301526024820186905287169063a9059cbb90604401602060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190612868565b905080610b345760405162461bcd60e51b815260206004820152601a60248201527f6661696c656420746f207472616e73666572207061796d656e7400000000000060448201526064016106ee565b60405163a9059cbb60e01b81526001600160a01b0386811660048301526024820184905287169063a9059cbb90604401602060405180830381600087803b158015610b7e57600080fd5b505af1158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612868565b905080610c2b5760405162461bcd60e51b815260206004820152602660248201527f6661696c656420746f207472616e73666572207061796d656e7420746f20726560448201527f676973747279000000000000000000000000000000000000000000000000000060648201526084016106ee565b876001600160a01b0316896001600160a01b03167f080a49aa43b33f2f3fe14496cbedde2305f0cc484e98afb78e943cf9881adc8a8685604051610c79929190918252602082015260400190565b60405180910390a35b505050505050505050565b60006001600160e01b03198216635a05180f60e01b1480610cb25750610cb2826119cf565b92915050565b600082815260208190526040902060010154610cd48133611a04565b610cde8383611a82565b505050565b6001600160a01b0381163314610d615760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016106ee565b610d6b8282611aa4565b5050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16610e135760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b610e1c81611ac6565b610e7a5760405162461bcd60e51b815260206004820152602960248201527f50726f746f636f6c436f6e74726f6c3a2070726f766964657220736861726573604482015268103a37b7903637bb9760b91b60648201526084016106ee565b600780546001600160a01b0319166001600160a01b03831690811790915560405190815260009030907f55a6d5ecee94ad7f72b42efa05adae50807422b98f5c511cf7f0a0205b65b7519060200160405180910390a350565b600254610100900460ff16610eee5760025460ff1615610ef2565b303b155b610f645760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ee565b600254610100900460ff16158015610f86576002805461ffff19166101011790555b8151610f999060099060208501906122b8565b50600680546001600160a01b0386166001600160a01b0319918216179091556007805490911630179055610fce600084611cf3565b8015610fe0576002805461ff00191690555b50505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661108a5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b61109381611ac6565b6110f15760405162461bcd60e51b815260206004820152602960248201527f50726f746f636f6c436f6e74726f6c3a2070726f766964657220736861726573604482015268103a37b7903637bb9760b91b60648201526084016106ee565b6001600160a01b0382811660008181526005602090815260409182902080546001600160a01b03191694861694851790559051928352909130917f55a6d5ecee94ad7f72b42efa05adae50807422b98f5c511cf7f0a0205b65b751910160405180910390a35050565b60008281526001602052604081206111729083611cfd565b9392505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661121d5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b610cde6009838361233c565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff166112cd5760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b50600081815260046020818152604080842080548251808501829052808401889052835180820385018152606090910190935282519284019290922086865293909252919260019261132090849061288a565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917ff0d0fe9ecd941ad0096a6b95e0998ddcd76ba6a240a106fef284fc2d4f0caa419190a392915050565b6008546000906001600160a01b031661141e57600660009054906101000a90046001600160a01b03166001600160a01b031663f645d4f96040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e157600080fd5b505afa1580156113f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141991906127c4565b905090565b506008546001600160a01b031690565b60608167ffffffffffffffff8111156114495761144961249b565b60405190808252806020026020018201604052801561147c57816020015b60608152602001906001900390816114675790505b50905060005b8281101561151c576114ec308585848181106114a0576114a06128a2565b90506020028101906114b291906128b8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d0992505050565b8282815181106114fe576114fe6128a2565b6020026020010181905250808061151490612906565b915050611482565b5092915050565b6000818152600460205260409020546060908067ffffffffffffffff81111561154e5761154e61249b565b604051908082528060200260200182016040528015611577578160200160208202803683370190505b50915060005b8181101561160d57604080516020810183905290810185905260009060600160408051601f1981840301815291815281516020928301206000818152600390935291205485519192506001600160a01b0316908590849081106115e2576115e26128a2565b6001600160a01b03909216602092830291909101909101525061160660018261288a565b905061157d565b5050919050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166116b85760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f9d90a82ec1d038d4e13317a0eb136f9c65b7ed42156fc204ec4b7c4731e739509060200160405180910390a150565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166117b05760405162461bcd60e51b815260206004820152603d60248201527f50726f746f636f6c436f6e74726f6c3a204f6e6c792070726f746f636f6c206160448201527f646d696e732063616e2063616c6c20746869732066756e6374696f6e2e00000060648201526084016106ee565b6000828152600360205260409020546001600160a01b031661183a5760405162461bcd60e51b815260206004820152603660248201527f50726f746f636f6c436f6e74726f6c3a2061206d6f64756c652077697468207460448201527f68697320494420646f6573206e6f742065786973742e0000000000000000000060648201526084016106ee565b60008281526003602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917ff0d0fe9ecd941ad0096a6b95e0998ddcd76ba6a240a106fef284fc2d4f0caa419190a35050565b6000818152600160205260408120610cb290611d2e565b6000828152602081905260409020600101546118c68133611a04565b610cde8383611aa4565b600980546118dd90612921565b80601f016020809104026020016040519081016040528092919081815260200182805461190990612921565b80156119565780601f1061192b57610100808354040283529160200191611956565b820191906000526020600020905b81548152906001019060200180831161193957829003601f168201915b505050505081565b6001600160a01b0380821660009081526005602052604081205490911680610cb25750506007546001600160a01b0316919050565b3b151590565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480610cb25750506001600160a01b03161590565b60006001600160e01b03198216637965db0b60e01b1480610cb257506301ffc9a760e01b6001600160e01b0319831614610cb2565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610d6b57611a40816001600160a01b03166014611d38565b611a4b836020611d38565b604051602001611a5c92919061295c565b60408051601f198184030181529082905262461bcd60e51b82526106ee916004016125df565b611a8c8282611ee1565b6000828152600160205260409020610cde9082611f7f565b611aae8282611f94565b6000828152600160205260409020610cde9082612013565b600654604080516361d027b360e01b8152905160009284926001600160a01b0391821692859285169163ce7c2ac29185916361d027b3916004808301926020929190829003018186803b158015611b1c57600080fd5b505afa158015611b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5491906127c4565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb91906127e1565b90506000836001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0857600080fd5b505afa158015611c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4091906127e1565b9050600081611c5161271085612810565b611c5b919061282f565b604051630e78de6f60e31b8152306004820152909150600a9081906001600160a01b038716906373c6f3789060240160206040518083038186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cda91906127e1565b611ce49190612851565b90911015979650505050505050565b610d6b8282611a82565b60006111728383612028565b60606111728383604051806060016040528060278152602001612a2760279139612052565b6000610cb2825490565b60606000611d47836002612810565b611d5290600261288a565b67ffffffffffffffff811115611d6a57611d6a61249b565b6040519080825280601f01601f191660200182016040528015611d94576020820181803683370190505b509050600360fc1b81600081518110611daf57611daf6128a2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611dde57611dde6128a2565b60200101906001600160f81b031916908160001a9053506000611e02846002612810565b611e0d90600161288a565b90505b6001811115611e92577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611e4e57611e4e6128a2565b1a60f81b828281518110611e6457611e646128a2565b60200101906001600160f81b031916908160001a90535060049490941c93611e8b816129dd565b9050611e10565b5083156111725760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106ee565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610d6b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611f3b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611172836001600160a01b03841661213d565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610d6b576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611172836001600160a01b03841661218c565b600082600001828154811061203f5761203f6128a2565b9060005260206000200154905092915050565b6060833b6120c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016106ee565b600080856001600160a01b0316856040516120e391906129f4565b600060405180830381855af49150503d806000811461211e576040519150601f19603f3d011682016040523d82523d6000602084013e612123565b606091505b509150915061213382828661227f565b9695505050505050565b600081815260018301602052604081205461218457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cb2565b506000610cb2565b600081815260018301602052604081205480156122755760006121b0600183612851565b85549091506000906121c490600190612851565b90508181146122295760008660000182815481106121e4576121e46128a2565b9060005260206000200154905080876000018481548110612207576122076128a2565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061223a5761223a612a10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cb2565b6000915050610cb2565b6060831561228e575081611172565b82511561229e5782518084602001fd5b8160405162461bcd60e51b81526004016106ee91906125df565b8280546122c490612921565b90600052602060002090601f0160209004810192826122e6576000855561232c565b82601f106122ff57805160ff191683800117855561232c565b8280016001018555821561232c579182015b8281111561232c578251825591602001919060010190612311565b506123389291506123b0565b5090565b82805461234890612921565b90600052602060002090601f01602090048101928261236a576000855561232c565b82601f106123835782800160ff1982351617855561232c565b8280016001018555821561232c579182015b8281111561232c578235825591602001919060010190612395565b5b8082111561233857600081556001016123b1565b6001600160a01b03811681146123da57600080fd5b50565b600080604083850312156123f057600080fd5b82356123fb816123c5565b9150602083013561240b816123c5565b809150509250929050565b60006020828403121561242857600080fd5b81356001600160e01b03198116811461117257600080fd5b60006020828403121561245257600080fd5b5035919050565b6000806040838503121561246c57600080fd5b82359150602083013561240b816123c5565b60006020828403121561249057600080fd5b8135611172816123c5565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156124c657600080fd5b83356124d1816123c5565b925060208401356124e1816123c5565b9150604084013567ffffffffffffffff808211156124fe57600080fd5b818601915086601f83011261251257600080fd5b8135818111156125245761252461249b565b604051601f8201601f19908116603f0116810190838211818310171561254c5761254c61249b565b8160405282815289602084870101111561256557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60005b838110156125a257818101518382015260200161258a565b83811115610fe05750506000910152565b600081518084526125cb816020860160208601612587565b601f01601f19169290920160200192915050565b60208152600061117260208301846125b3565b6000806040838503121561260557600080fd5b50508035926020909101359150565b6000806020838503121561262757600080fd5b823567ffffffffffffffff8082111561263f57600080fd5b818501915085601f83011261265357600080fd5b81358181111561266257600080fd5b86602082850101111561267457600080fd5b60209290920196919550909350505050565b6000806040838503121561269957600080fd5b82356126a4816123c5565b946020939093013593505050565b600080602083850312156126c557600080fd5b823567ffffffffffffffff808211156126dd57600080fd5b818501915085601f8301126126f157600080fd5b81358181111561270057600080fd5b8660208260051b850101111561267457600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561276a57603f198886030184526127588583516125b3565b9450928501929085019060010161273c565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156127b85783516001600160a01b031683529284019291840191600101612793565b50909695505050505050565b6000602082840312156127d657600080fd5b8151611172816123c5565b6000602082840312156127f357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561282a5761282a6127fa565b500290565b60008261284c57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612863576128636127fa565b500390565b60006020828403121561287a57600080fd5b8151801515811461117257600080fd5b6000821982111561289d5761289d6127fa565b500190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126128cf57600080fd5b83018035915067ffffffffffffffff8211156128ea57600080fd5b6020019150368190038213156128ff57600080fd5b9250929050565b600060001982141561291a5761291a6127fa565b5060010190565b600181811c9082168061293557607f821691505b6020821081141561295657634e487b7160e01b600052602260045260246000fd5b50919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612994816017850160208801612587565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516129d1816028840160208801612587565b01602801949350505050565b6000816129ec576129ec6127fa565b506000190190565b60008251612a06818460208701612587565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$w = function isSuperArgs(xs) {
return xs.length > 1;
};
var ProtocolControl__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ProtocolControl__factory, _ContractFactory);
function ProtocolControl__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$w(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1f, _bytecode$w, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ProtocolControl__factory.prototype;
_proto.deploy = function deploy(overrides) {
return _ContractFactory.prototype.deploy.call(this, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ProtocolControl__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1f);
};
ProtocolControl__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1f, signerOrProvider);
};
return ProtocolControl__factory;
}(ContractFactory);
ProtocolControl__factory.bytecode = _bytecode$w;
ProtocolControl__factory.abi = _abi$1f;
var _abi$1g = [{
inputs: [{
internalType: "address",
name: "_treasury",
type: "address"
}, {
internalType: "address",
name: "_forwarder",
type: "address"
}, {
internalType: "address",
name: "_deployer",
type: "address"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "defaultFeeBps",
type: "uint256"
}],
name: "DefaultFeeBpsUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "newDeployer",
type: "address"
}],
name: "DeployerUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "deployer",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "version",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "controlAddress",
type: "address"
}],
name: "MigratedProtocolControl",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "deployer",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "version",
type: "uint256"
}, {
indexed: true,
internalType: "address",
name: "controlAddress",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "controlDeployer",
type: "address"
}],
name: "NewProtocolControl",
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: "control",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "feeBps",
type: "uint256"
}],
name: "ProtocolControlFeeBpsUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "newTreasury",
type: "address"
}],
name: "TreasuryUpdated",
type: "event"
}, {
inputs: [],
name: "MAX_PROVIDER_FEE_BPS",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_deployer",
type: "address"
}, {
internalType: "address",
name: "_protocolControl",
type: "address"
}],
name: "addProtocolControl",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "defaultFeeBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "uri",
type: "string"
}],
name: "deployProtocol",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "deployer",
outputs: [{
internalType: "contract IControlDeployer",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "forwarder",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "protocolControl",
type: "address"
}],
name: "getFeeBps",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_deployer",
type: "address"
}, {
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "getProtocolControl",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_deployer",
type: "address"
}],
name: "getProtocolControlCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_newFeeBps",
type: "uint256"
}],
name: "setDefaultFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newDeployer",
type: "address"
}],
name: "setDeployer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "protocolControl",
type: "address"
}, {
internalType: "uint256",
name: "_newFeeBps",
type: "uint256"
}],
name: "setProtocolControlFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newTreasury",
type: "address"
}],
name: "setTreasury",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "treasury",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$x = "0x60806040526101f460015534801561001657600080fd5b50604051610dad380380610dad833981016040819052610035916100ec565b61003e33610080565b600280546001600160a01b039485166001600160a01b03199182161790915560038054938516938216939093179092556004805491909316911617905561012f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100e757600080fd5b919050565b60008060006060848603121561010157600080fd5b61010a846100d0565b9250610118602085016100d0565b9150610126604085016100d0565b90509250925092565b610c6f8061013e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806396214735116100b2578063d5f3948811610081578063f0f4426011610066578063f0f4426014610273578063f2fde38b14610286578063f645d4f91461029957600080fd5b8063d5f3948814610226578063dc62163e1461023957600080fd5b806396214735146101ce578063bcae25a4146101e1578063cd7e89b1146101ea578063d566464b1461021357600080fd5b806373c6f378116100ee57806373c6f378146101845780637c160011146101975780638da5cb5b146101aa5780638e75aea9146101bb57600080fd5b80634373a286146101205780635cd423151461013557806361d027b314610151578063715018a61461017c575b600080fd5b61013361012e366004610a34565b6102ac565b005b61013e6103e881565b6040519081526020015b60405180910390f35b600254610164906001600160a01b031681565b6040516001600160a01b039091168152602001610148565b6101336103bf565b61013e610192366004610a62565b610425565b6101336101a5366004610a86565b610453565b6000546001600160a01b0316610164565b6101336101c9366004610ab2565b61057e565b6101336101dc366004610a62565b61064f565b61013e60015481565b61013e6101f8366004610a62565b6001600160a01b031660009081526005602052604090205490565b610133610221366004610b01565b6106f7565b600454610164906001600160a01b031681565b610164610247366004610a86565b6001600160a01b0391821660009081526005602090815260408083209383526001909301905220541690565b610133610281366004610a62565b61080e565b610133610294366004610a62565b6108b6565b600354610164906001600160a01b031681565b6000546001600160a01b0316331461030b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6103e88111156103835760405162461bcd60e51b815260206004820152603160248201527f52656769737472793a2070726f7669646572206665652063616e6e6f7420626560448201527f2067726561746572207468616e203130250000000000000000000000000000006064820152608401610302565b60018190556040518181527faf07358220f107097f5c9bc5cacec9de23c6bd67d61633e5abaa3aa698d94fcf906020015b60405180910390a150565b6000546001600160a01b031633146104195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b6104236000610998565b565b6001600160a01b0381166000908152600660205260408120548061044d575050600154919050565b92915050565b6000546001600160a01b031633146104ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b6103e88111156105255760405162461bcd60e51b815260206004820152603160248201527f52656769737472793a2070726f7669646572206665652063616e6e6f7420626560448201527f2067726561746572207468616e203130250000000000000000000000000000006064820152608401610302565b6001600160a01b03821660008181526006602052604090819020839055517f3f3f5381919d082b3f6431a55b5affd99c52c10d6b16a850a6c75377c17285a7906105729084815260200190565b60405180910390a25050565b6000546001600160a01b031633146105d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b60006105e3836109e8565b6001600160a01b03848116600081815260056020908152604080832086845260010190915280822080546001600160a01b031916948816948517905551939450919284927fdba9aa581603bcdba2c5e0931430e0e092dc61b76318944adef4cc5dc0cf8d9991a4505050565b6000546001600160a01b031633146106a95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f6db6dcdd05f1728263d8f644adcb07da9d18505aa9b2e33360b2715a878a711e906020016103b4565b336000610703826109e8565b6004805460405163ca282cb360e01b81529293506000926001600160a01b039091169163ca282cb39161073c91869188918a9101610bb2565b602060405180830381600087803b15801561075657600080fd5b505af115801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e9190610c1f565b6001600160a01b03848116600081815260056020908152604080832088845260010182529182902080546001600160a01b0319168686169081179091556004549251929094168252939450919285927f87f4df5222ed82bbc7706c066c5d45f3f5682016cb20d642c5491b7b411340b4910160405180910390a450505050565b6000546001600160a01b031633146108685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1906020016103b4565b6000546001600160a01b031633146109105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610302565b6001600160a01b03811661098c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610302565b61099581610998565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526005602052604081208054600191908390610a13908490610c3c565b9091555050506001600160a01b031660009081526005602052604090205490565b600060208284031215610a4657600080fd5b5035919050565b6001600160a01b038116811461099557600080fd5b600060208284031215610a7457600080fd5b8135610a7f81610a4d565b9392505050565b60008060408385031215610a9957600080fd5b8235610aa481610a4d565b946020939093013593505050565b60008060408385031215610ac557600080fd5b8235610ad081610a4d565b91506020830135610ae081610a4d565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610b1357600080fd5b813567ffffffffffffffff80821115610b2b57600080fd5b818401915084601f830112610b3f57600080fd5b813581811115610b5157610b51610aeb565b604051601f8201601f19908116603f01168101908382118183101715610b7957610b79610aeb565b81604052828152876020848701011115610b9257600080fd5b826020860160208301376000928101602001929092525095945050505050565b838152600060206001600160a01b0385168184015260606040840152835180606085015260005b81811015610bf557858101830151858201608001528201610bd9565b81811115610c07576000608083870101525b50601f01601f19169290920160800195945050505050565b600060208284031215610c3157600080fd5b8151610a7f81610a4d565b60008219821115610c5d57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c6343000809000a";
var isSuperArgs$x = function isSuperArgs(xs) {
return xs.length > 1;
};
var Registry__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Registry__factory, _ContractFactory);
function Registry__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$x(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1g, _bytecode$x, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Registry__factory.prototype;
_proto.deploy = function deploy(_treasury, _forwarder, _deployer, overrides) {
return _ContractFactory.prototype.deploy.call(this, _treasury, _forwarder, _deployer, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_treasury, _forwarder, _deployer, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _treasury, _forwarder, _deployer, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Registry__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1g);
};
Registry__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1g, signerOrProvider);
};
return Registry__factory;
}(ContractFactory);
Registry__factory.bytecode = _bytecode$x;
Registry__factory.abi = _abi$1g;
var _abi$1h = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "address[]",
name: "payees",
type: "address[]"
}, {
internalType: "uint256[]",
name: "shares_",
type: "uint256[]"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "ERC20PaymentReleased",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}],
name: "PayeeAdded",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReleased",
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "payee",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "payeeCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "shares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalShares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$y = "0x60806040523480156200001157600080fd5b5060405162002af138038062002af1833981016040819052620000349162000994565b600980546001600160a01b0319166001600160a01b0386161790558051825114620000cc5760405162461bcd60e51b815260206004820152603660248201527f526f79616c74793a20756e657175616c206e756d626572206f6620706179656560448201527f7320616e64207368617265732070726f76696465642e0000000000000000000060648201526084015b60405180910390fd5b60008251116200011f5760405162461bcd60e51b815260206004820152601c60248201527f526f79616c74793a206e6f207061796565732070726f76696465642e000000006044820152606401620000c3565b82516200013490600b90602086019062000786565b50600a80546001600160a01b0319166001600160a01b03871690811790915560408051637b10399960e01b8152905160009291637b103999916004808301926020929190829003018186803b1580156200018d57600080fd5b505afa158015620001a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c8919062000ace565b604051630e78de6f60e31b81526001600160a01b0388811660048301529192506000918316906373c6f3789060240160206040518083038186803b1580156200021057600080fd5b505afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000af5565b905060008060005b86518110156200031f57600086828151811062000274576200027462000b0f565b60200260200101516127106200028b919062000b3b565b905062000299818562000b5d565b93506000612710620002ac878462000b3b565b620002b8919062000b78565b90506000620002c8828462000b9b565b9050620002d6818662000b5d565b9450620003068a8581518110620002f157620002f162000b0f565b602002602001015182620003d660201b60201c565b5050508080620003169062000bb5565b91505062000253565b5060006200032e828462000b9b565b9050620003b0856001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036e57600080fd5b505afa15801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a9919062000ace565b82620003d6565b620003c66000620003c0620005c2565b620005de565b5050505050505050505062000c10565b6001600160a01b038216620004435760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401620000c3565b60008111620004955760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401620000c3565b6001600160a01b03821660009081526002602052604090205415620005115760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401620000c3565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0384169081179091556000908152600260205260408120829055546200057990829062000b5d565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b6000620005d9620005ee60201b62000e111760201c565b905090565b620005ea828262000627565b5050565b6009546000906001600160a01b031633141562000612575060131936013560601c90565b620005d96200066a60201b62000e391760201c565b6200063e82826200066e60201b62000e3d1760201c565b60008281526008602090815260409091206200066591839062000ee062000714821b17901c565b505050565b3390565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16620005ea5760008281526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006d0620005c2565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200072b836001600160a01b03841662000734565b90505b92915050565b60008181526001830160205260408120546200077d575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200072e565b5060006200072e565b828054620007949062000bd3565b90600052602060002090601f016020900481019282620007b8576000855562000803565b82601f10620007d357805160ff191683800117855562000803565b8280016001018555821562000803579182015b8281111562000803578251825591602001919060010190620007e6565b506200081192915062000815565b5090565b5b8082111562000811576000815560010162000816565b6001600160a01b03811681146200084257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000886576200088662000845565b604052919050565b60006001600160401b03821115620008aa57620008aa62000845565b5060051b60200190565b600082601f830112620008c657600080fd5b81516020620008df620008d9836200088e565b6200085b565b82815260059290921b84018101918181019086841115620008ff57600080fd5b8286015b848110156200092757805162000919816200082c565b835291830191830162000903565b509695505050505050565b600082601f8301126200094457600080fd5b8151602062000957620008d9836200088e565b82815260059290921b840181019181810190868411156200097757600080fd5b8286015b848110156200092757805183529183019183016200097b565b600080600080600060a08688031215620009ad57600080fd5b8551620009ba816200082c565b80955050602080870151620009cf816200082c565b60408801519095506001600160401b0380821115620009ed57600080fd5b818901915089601f83011262000a0257600080fd5b81518181111562000a175762000a1762000845565b62000a2b601f8201601f191685016200085b565b8181528b8583860101111562000a4057600080fd5b60005b8281101562000a6057848101860151828201870152850162000a43565b8281111562000a725760008684840101525b5060608b01519097509350508083111562000a8c57600080fd5b62000a9a8a848b01620008b4565b9450608089015192508083111562000ab157600080fd5b505062000ac18882890162000932565b9150509295509295909350565b60006020828403121562000ae157600080fd5b815162000aee816200082c565b9392505050565b60006020828403121562000b0857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000b585762000b5862000b25565b500290565b6000821982111562000b735762000b7362000b25565b500190565b60008262000b9657634e487b7160e01b600052601260045260246000fd5b500490565b60008282101562000bb05762000bb062000b25565b500390565b600060001982141562000bcc5762000bcc62000b25565b5060010190565b600181811c9082168062000be857607f821691505b6020821081141562000c0a57634e487b7160e01b600052602260045260246000fd5b50919050565b611ed18062000c206000396000f3fe6080604052600436106101995760003560e01c80639010d07c116100e1578063ca15c8731161008a578063d79779b211610064578063d79779b21461054a578063e33b7de314610580578063e4fc6b6d14610595578063e8a3d485146105aa57600080fd5b8063ca15c873146104d4578063ce7c2ac2146104f4578063d547741f1461052a57600080fd5b80639852595c116100bb5780639852595c1461045c578063a217fddf14610492578063ac9650d8146104a757600080fd5b80639010d07c146103d657806391d14854146103f6578063938e3d7b1461043c57600080fd5b80633a98ef3911610143578063572b6c051161011d578063572b6c051461034f57806363453ae11461037e5780638b83209b1461039e57600080fd5b80633a98ef39146102d4578063406072a9146102e957806348b750441461032f57600080fd5b8063248a9ca311610174578063248a9ca3146102645780632f2ff15d1461029457806336568abe146102b457600080fd5b8062dbe109146101ee57806301ffc9a714610212578063191655871461024257600080fd5b366101e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706101c76105cc565b604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156101fa57600080fd5b506004545b6040519081526020015b60405180910390f35b34801561021e57600080fd5b5061023261022d3660046119a7565b6105db565b6040519015158152602001610209565b34801561024e57600080fd5b5061026261025d3660046119e6565b610606565b005b34801561027057600080fd5b506101ff61027f366004611a03565b60009081526007602052604090206001015490565b3480156102a057600080fd5b506102626102af366004611a1c565b6107bc565b3480156102c057600080fd5b506102626102cf366004611a1c565b6107ee565b3480156102e057600080fd5b506000546101ff565b3480156102f557600080fd5b506101ff610304366004611a4c565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561033b57600080fd5b5061026261034a366004611a4c565b61088a565b34801561035b57600080fd5b5061023261036a3660046119e6565b6009546001600160a01b0391821691161490565b34801561038a57600080fd5b506102626103993660046119e6565b610af5565b3480156103aa57600080fd5b506103be6103b9366004611a03565b610b45565b6040516001600160a01b039091168152602001610209565b3480156103e257600080fd5b506103be6103f1366004611a7a565b610b75565b34801561040257600080fd5b50610232610411366004611a1c565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561044857600080fd5b50610262610457366004611a9c565b610b94565b34801561046857600080fd5b506101ff6104773660046119e6565b6001600160a01b031660009081526003602052604090205490565b34801561049e57600080fd5b506101ff600081565b3480156104b357600080fd5b506104c76104c2366004611b0e565b610bf9565b6040516102099190611bcd565b3480156104e057600080fd5b506101ff6104ef366004611a03565b610cee565b34801561050057600080fd5b506101ff61050f3660046119e6565b6001600160a01b031660009081526002602052604090205490565b34801561053657600080fd5b50610262610545366004611a1c565b610d05565b34801561055657600080fd5b506101ff6105653660046119e6565b6001600160a01b031660009081526005602052604090205490565b34801561058c57600080fd5b506001546101ff565b3480156105a157600080fd5b50610262610d2d565b3480156105b657600080fd5b506105bf610d7f565b6040516102099190611c2f565b60006105d6610e11565b905090565b60006001600160e01b03198216635a05180f60e01b1480610600575061060082610ef5565b92915050565b6001600160a01b03811660009081526002602052604090205461067f5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b600061068a60015490565b6106949047611c58565b905060006106c183836106bc866001600160a01b031660009081526003602052604090205490565b610f2a565b9050806107245760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610676565b6001600160a01b0383166000908152600360205260408120805483929061074c908490611c58565b9250508190555080600160008282546107659190611c58565b9091555061077590508382610f6d565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b6000828152600760205260409020600101546107df816107da6105cc565b611086565b6107e98383611106565b505050565b6107f66105cc565b6001600160a01b0316816001600160a01b03161461087c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610676565b6108868282611128565b5050565b6001600160a01b0381166000908152600260205260409020546108fe5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608401610676565b6001600160a01b0382166000908152600560205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561095657600080fd5b505afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e9190611c70565b6109989190611c58565b905060006109d183836106bc87876001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b905080610a345760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610676565b6001600160a01b03808516600090815260066020908152604080832093871683529290529081208054839290610a6b908490611c58565b90915550506001600160a01b03841660009081526005602052604081208054839290610a98908490611c58565b90915550610aa9905084848361114a565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60005b60045481101561088657610b338260048381548110610b1957610b19611c89565b6000918252602090912001546001600160a01b031661088a565b80610b3d81611c9f565b915050610af8565b600060048281548110610b5a57610b5a611c89565b6000918252602090912001546001600160a01b031692915050565b6000828152600860205260408120610b8d90836111b1565b9392505050565b610ba160006104116105cc565b610bed5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c65000000000000000000006044820152606401610676565b6107e9600b838361190e565b60608167ffffffffffffffff811115610c1457610c14611cba565b604051908082528060200260200182016040528015610c4757816020015b6060815260200190600190039081610c325790505b50905060005b82811015610ce757610cb730858584818110610c6b57610c6b611c89565b9050602002810190610c7d9190611cd0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111bd92505050565b828281518110610cc957610cc9611c89565b60200260200101819052508080610cdf90611c9f565b915050610c4d565b5092915050565b6000818152600860205260408120610600906111e2565b600082815260076020526040902060010154610d23816107da6105cc565b6107e98383611128565b60005b600454811015610d7c57610d6a60048281548110610d5057610d50611c89565b6000918252602090912001546001600160a01b0316610606565b80610d7481611c9f565b915050610d30565b50565b6060600b8054610d8e90611d1e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dba90611d1e565b8015610e075780601f10610ddc57610100808354040283529160200191610e07565b820191906000526020600020905b815481529060010190602001808311610dea57829003601f168201915b5050505050905090565b6009546000906001600160a01b0316331415610e34575060131936013560601c90565b503390565b3390565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166108865760008281526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610e9c6105cc565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b8d836001600160a01b0384166111ec565b60006001600160e01b03198216637965db0b60e01b148061060057506301ffc9a760e01b6001600160e01b0319831614610600565b600080546001600160a01b038516825260026020526040822054839190610f519086611d59565b610f5b9190611d78565b610f659190611d9a565b949350505050565b80471015610fbd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610676565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461100a576040519150601f19603f3d011682016040523d82523d6000602084013e61100f565b606091505b50509050806107e95760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610676565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16610886576110c4816001600160a01b0316601461123b565b6110cf83602061123b565b6040516020016110e0929190611db1565b60408051601f198184030181529082905262461bcd60e51b825261067691600401611c2f565b6111108282610e3d565b60008281526008602052604090206107e99082610ee0565b61113282826113e4565b60008281526008602052604090206107e99082611485565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1790526107e990849061149a565b6000610b8d838361157f565b6060610b8d8383604051806060016040528060278152602001611e9e602791396115a9565b6000610600825490565b600081815260018301602052604081205461123357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610600565b506000610600565b6060600061124a836002611d59565b611255906002611c58565b67ffffffffffffffff81111561126d5761126d611cba565b6040519080825280601f01601f191660200182016040528015611297576020820181803683370190505b509050600360fc1b816000815181106112b2576112b2611c89565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112e1576112e1611c89565b60200101906001600160f81b031916908160001a9053506000611305846002611d59565b611310906001611c58565b90505b6001811115611395577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061135157611351611c89565b1a60f81b82828151811061136757611367611c89565b60200101906001600160f81b031916908160001a90535060049490941c9361138e81611e32565b9050611313565b508315610b8d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610676565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16156108865760008281526007602090815260408083206001600160a01b03851684529091529020805460ff191690556114416105cc565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610b8d836001600160a01b038416611694565b60006114ef826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117879092919063ffffffff16565b8051909150156107e9578080602001905181019061150d9190611e49565b6107e95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610676565b600082600001828154811061159657611596611c89565b9060005260206000200154905092915050565b6060833b61161f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610676565b600080856001600160a01b03168560405161163a9190611e6b565b600060405180830381855af49150503d8060008114611675576040519150601f19603f3d011682016040523d82523d6000602084013e61167a565b606091505b509150915061168a828286611796565b9695505050505050565b6000818152600183016020526040812054801561177d5760006116b8600183611d9a565b85549091506000906116cc90600190611d9a565b90508181146117315760008660000182815481106116ec576116ec611c89565b906000526020600020015490508087600001848154811061170f5761170f611c89565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061174257611742611e87565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610600565b6000915050610600565b6060610f6584846000856117cf565b606083156117a5575081610b8d565b8251156117b55782518084602001fd5b8160405162461bcd60e51b81526004016106769190611c2f565b6060824710156118475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610676565b843b6118955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610676565b600080866001600160a01b031685876040516118b19190611e6b565b60006040518083038185875af1925050503d80600081146118ee576040519150601f19603f3d011682016040523d82523d6000602084013e6118f3565b606091505b5091509150611903828286611796565b979650505050505050565b82805461191a90611d1e565b90600052602060002090601f01602090048101928261193c5760008555611982565b82601f106119555782800160ff19823516178555611982565b82800160010185558215611982579182015b82811115611982578235825591602001919060010190611967565b5061198e929150611992565b5090565b5b8082111561198e5760008155600101611993565b6000602082840312156119b957600080fd5b81356001600160e01b031981168114610b8d57600080fd5b6001600160a01b0381168114610d7c57600080fd5b6000602082840312156119f857600080fd5b8135610b8d816119d1565b600060208284031215611a1557600080fd5b5035919050565b60008060408385031215611a2f57600080fd5b823591506020830135611a41816119d1565b809150509250929050565b60008060408385031215611a5f57600080fd5b8235611a6a816119d1565b91506020830135611a41816119d1565b60008060408385031215611a8d57600080fd5b50508035926020909101359150565b60008060208385031215611aaf57600080fd5b823567ffffffffffffffff80821115611ac757600080fd5b818501915085601f830112611adb57600080fd5b813581811115611aea57600080fd5b866020828501011115611afc57600080fd5b60209290920196919550909350505050565b60008060208385031215611b2157600080fd5b823567ffffffffffffffff80821115611b3957600080fd5b818501915085601f830112611b4d57600080fd5b813581811115611b5c57600080fd5b8660208260051b8501011115611afc57600080fd5b60005b83811015611b8c578181015183820152602001611b74565b83811115611b9b576000848401525b50505050565b60008151808452611bb9816020860160208601611b71565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611c2257603f19888603018452611c10858351611ba1565b94509285019290850190600101611bf4565b5092979650505050505050565b602081526000610b8d6020830184611ba1565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c6b57611c6b611c42565b500190565b600060208284031215611c8257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611cb357611cb3611c42565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112611ce757600080fd5b83018035915067ffffffffffffffff821115611d0257600080fd5b602001915036819003821315611d1757600080fd5b9250929050565b600181811c90821680611d3257607f821691505b60208210811415611d5357634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615611d7357611d73611c42565b500290565b600082611d9557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611dac57611dac611c42565b500390565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611de9816017850160208801611b71565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351611e26816028840160208801611b71565b01602801949350505050565b600081611e4157611e41611c42565b506000190190565b600060208284031215611e5b57600080fd5b81518015158114610b8d57600080fd5b60008251611e7d818460208701611b71565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$y = function isSuperArgs(xs) {
return xs.length > 1;
};
var Royalty__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Royalty__factory, _ContractFactory);
function Royalty__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$y(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1h, _bytecode$y, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Royalty__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Royalty__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1h);
};
Royalty__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1h, signerOrProvider);
};
return Royalty__factory;
}(ContractFactory);
Royalty__factory.bytecode = _bytecode$y;
Royalty__factory.abi = _abi$1h;
/* Autogenerated file. Do not edit manually. */
var _abi$1i = [{
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "newRoyaltyRecipient",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "DefaultRoyalty",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "signer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
indexed: false,
internalType: "struct ISignatureMint1155.MintRequest",
name: "mintRequest",
type: "tuple"
}],
name: "MintWithSignature",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewDefaultRoyaltyRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewDefaultSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyForToken",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "uri",
type: "string"
}, {
indexed: false,
internalType: "uint256",
name: "quantityMinted",
type: "uint256"
}],
name: "TokenMinted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "mintTo",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint1155.MintRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "mintWithSignature",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint1155.MintRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "verify",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}, {
internalType: "address",
name: "signer",
type: "address"
}],
stateMutability: "view",
type: "function"
}];
var ISignatureMint1155__factory = /*#__PURE__*/function () {
function ISignatureMint1155__factory() {}
ISignatureMint1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1i);
};
ISignatureMint1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1i, signerOrProvider);
};
return ISignatureMint1155__factory;
}();
ISignatureMint1155__factory.abi = _abi$1i;
var _abi$1j = [{
inputs: [{
internalType: "string",
name: "_contractURI",
type: "string"
}, {
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}, {
internalType: "address",
name: "_royaltyRecipient",
type: "address"
}, {
internalType: "uint128",
name: "_royaltyBps",
type: "uint128"
}, {
internalType: "uint128",
name: "_feeBps",
type: "uint128"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: false,
internalType: "bool",
name: "approved",
type: "bool"
}],
name: "ApprovalForAll",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "newRoyaltyRecipient",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "DefaultRoyalty",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "signer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
indexed: false,
internalType: "struct ISignatureMint1155.MintRequest",
name: "mintRequest",
type: "tuple"
}],
name: "MintWithSignature",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewDefaultRoyaltyRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewDefaultSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
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: [{
indexed: true,
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}],
name: "RoyaltyForToken",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "uri",
type: "string"
}, {
indexed: false,
internalType: "uint256",
name: "quantityMinted",
type: "uint256"
}],
name: "TokenMinted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "TransferBatch",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "operator",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "id",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "TransferSingle",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "string",
name: "value",
type: "string"
}, {
indexed: true,
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "URI",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "accounts",
type: "address[]"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}],
name: "balanceOfBatch",
outputs: [{
internalType: "uint256[]",
name: "",
type: "uint256[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "value",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256[]",
name: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}],
name: "burnBatch",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "defaultRoyaltyRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "defaultSaleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
outputs: [{
internalType: "uint120",
name: "",
type: "uint120"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "getDefaultRoyaltyInfo",
outputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint16",
name: "",
type: "uint16"
}],
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: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "getRoyaltyInfoForToken",
outputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint16",
name: "",
type: "uint16"
}],
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: "address",
name: "account",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_to",
type: "address"
}, {
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "uint256",
name: "_amount",
type: "uint256"
}],
name: "mintTo",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint1155.MintRequest",
name: "_req",
type: "tuple"
}, {
internalType: "bytes",
name: "_signature",
type: "bytes"
}],
name: "mintWithSignature",
outputs: [],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
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: "ids",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}, {
internalType: "bytes",
name: "data",
type: "bytes"
}],
name: "safeBatchTransferFrom",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "from",
type: "address"
}, {
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "id",
type: "uint256"
}, {
internalType: "uint256",
name: "amount",
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: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setDefaultRoyaltyInfo",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setDefaultSaleRecipient",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}, {
internalType: "address",
name: "_recipient",
type: "address"
}, {
internalType: "uint256",
name: "_bps",
type: "uint256"
}],
name: "setRoyaltyInfoForToken",
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: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "tokenURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "totalSupply",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_tokenId",
type: "uint256"
}],
name: "uri",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "address",
name: "royaltyRecipient",
type: "address"
}, {
internalType: "uint256",
name: "royaltyBps",
type: "uint256"
}, {
internalType: "address",
name: "primarySaleRecipient",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "quantity",
type: "uint256"
}, {
internalType: "uint256",
name: "pricePerToken",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint1155.MintRequest",
name: "_req",
type: "tuple"
}, {
internalType: "bytes",
name: "_signature",
type: "bytes"
}],
name: "verify",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}, {
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$z = "0x6101606040523480156200001257600080fd5b5060405162005bd538038062005bd583398101604081905262000035916200053d565b85604051806040016040528060118152602001705369676e61747572654d696e743131353560781b815250604051806040016040528060018152602001603160f81b815250604051806020016040528060008152506200009b816200027360201b60201c565b50815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c052610120525050600580546001600160a01b03199081166001600160a01b03958616179091556001600655600d805482168c861617905588841661014052600980548216898616179055600a805490911693871693909317909255505087516200019690600c9060208b01906200044c565b50600a8054600160a01b600160e01b031916600160a01b6001600160401b03851602179055600b80546001600160781b0319166001600160781b0383161790556000620001e26200028c565b600880546001600160a01b0319166001600160a01b03831617905590506200020c600082620002a8565b620002387f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682620002a8565b620002647f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c82620002a8565b505050505050505050620006db565b8051620002889060029060208401906200044c565b5050565b6000620002a3620002b460201b62001cf91760201c565b905090565b620002888282620002ed565b6005546000906001600160a01b0316331415620002d8575060131936013560601c90565b620002a36200033060201b62001d241760201c565b6200030482826200033460201b62001d281760201c565b60008281526004602090815260409091206200032b91839062001dcb620003da821b17901c565b505050565b3390565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff16620002885760008281526003602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003966200028c565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003f1836001600160a01b038416620003fa565b90505b92915050565b60008181526001830160205260408120546200044357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003f4565b506000620003f4565b8280546200045a906200069e565b90600052602060002090601f0160209004810192826200047e5760008555620004c9565b82601f106200049957805160ff1916838001178555620004c9565b82800160010185558215620004c9579182015b82811115620004c9578251825591602001919060010190620004ac565b50620004d7929150620004db565b5090565b5b80821115620004d75760008155600101620004dc565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200052057600080fd5b919050565b80516001600160801b03811681146200052057600080fd5b600080600080600080600080610100898b0312156200055b57600080fd5b88516001600160401b03808211156200057357600080fd5b818b0191508b601f8301126200058857600080fd5b8151818111156200059d576200059d620004f2565b604051601f8201601f19908116603f01168101908382118183101715620005c857620005c8620004f2565b81604052828152602093508e84848701011115620005e557600080fd5b600091505b82821015620006095784820184015181830185015290830190620005ea565b828211156200061b5760008484830101525b9b506200062d9150508b820162000508565b985050506200063f60408a0162000508565b95506200064f60608a0162000508565b94506200065f60808a0162000508565b93506200066f60a08a0162000508565b92506200067f60c08a0162000525565b91506200068f60e08a0162000525565b90509295985092959890939650565b600181811c90821680620006b357607f821691505b60208210811415620006d557634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516154836200075260003960008181610a1d015281816134620152818161355d01528181613b8b0152613c0201526000613f8b01526000613fda01526000613fb501526000613f0e01526000613f3801526000613f6201526154836000f3fe6080604052600436106102fc5760003560e01c80638da5cb5b1161018f578063b24f2d39116100e1578063d547741f1161008a578063f242432a11610064578063f242432a146109cb578063f5298aca146109eb578063f9ea29cb14610a0b57600080fd5b8063d547741f1461094d578063e8a3d4851461096d578063e985e9c51461098257600080fd5b8063c87b56dd116100bb578063c87b56dd14610364578063ca15c873146108f9578063d53913931461091957600080fd5b8063b24f2d391461085a578063bd85b0391461088b578063c63adb2b146108b857600080fd5b80639bcf7a1511610143578063ac9650d81161011d578063ac9650d8146107ce578063b03f4528146107fb578063b17cd86f1461081b57600080fd5b80639bcf7a1514610779578063a217fddf14610799578063a22cb465146107ae57600080fd5b806391d148541161017457806391d1485414610700578063938e3d7b1461074657806398a6e9931461076657600080fd5b80638da5cb5b146106cb5780639010d07c146106e057600080fd5b80632f2ff15d11610253578063572b6c05116101fc57806372c27b62116101d657806372c27b621461066a5780638423df791461068a5780638ba448c2146106ab57600080fd5b8063572b6c05146105fb578063600dd5ea1461062a5780636b20c4541461064a57600080fd5b80634cc157df1161022d5780634cc157df1461056c5780634e1273f4146105ae578063535ba42f146105db57600080fd5b80632f2ff15d1461051657806336568abe146105365780633b1475a71461055657600080fd5b8063206b60f9116102b557806324a9d8531161028f57806324a9d8531461046f5780632a55205a146104b75780632eb2c2d6146104f657600080fd5b8063206b60f9146103d3578063246b436b14610407578063248a9ca31461043f57600080fd5b80630e89341c116102e65780630e89341c1461036457806313af4035146103915780631490ee76146103b357600080fd5b8062fdd58e1461030157806301ffc9a714610334575b600080fd5b34801561030d57600080fd5b5061032161031c366004614449565b610a3f565b6040519081526020015b60405180910390f35b34801561034057600080fd5b5061035461034f36600461448b565b610aeb565b604051901515815260200161032b565b34801561037057600080fd5b5061038461037f3660046144a8565b610b31565b60405161032b9190614519565b34801561039d57600080fd5b506103b16103ac36600461452c565b610bd3565b005b3480156103bf57600080fd5b506103b16103ce36600461452c565b610d09565b3480156103df57600080fd5b506103217f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b34801561041357600080fd5b50600954610427906001600160a01b031681565b6040516001600160a01b03909116815260200161032b565b34801561044b57600080fd5b5061032161045a3660046144a8565b60009081526003602052604090206001015490565b34801561047b57600080fd5b50600b54610497906effffffffffffffffffffffffffffff1681565b6040516effffffffffffffffffffffffffffff909116815260200161032b565b3480156104c357600080fd5b506104d76104d2366004614549565b610da0565b604080516001600160a01b03909316835260208301919091520161032b565b34801561050257600080fd5b506103b16105113660046146e1565b610ddd565b34801561052257600080fd5b506103b161053136600461478f565b610e91565b34801561054257600080fd5b506103b161055136600461478f565b610ec3565b34801561056257600080fd5b5061032160075481565b34801561057857600080fd5b5061058c6105873660046144a8565b610f5f565b604080516001600160a01b03909316835261ffff90911660208301520161032b565b3480156105ba57600080fd5b506105ce6105c93660046147bf565b610fd0565b60405161032b91906148c7565b3480156105e757600080fd5b50600a54610427906001600160a01b031681565b34801561060757600080fd5b5061035461061636600461452c565b6005546001600160a01b0391821691161490565b34801561063657600080fd5b506103b1610645366004614449565b61110e565b34801561065657600080fd5b506103b16106653660046148da565b611214565b34801561067657600080fd5b506103b16106853660046144a8565b6112ac565b34801561069657600080fd5b50600b5461035490600160781b900460ff1681565b3480156106b757600080fd5b506103b16106c636600461495e565b6113ad565b3480156106d757600080fd5b50610427611453565b3480156106ec57600080fd5b506104276106fb366004614549565b6114ac565b34801561070c57600080fd5b5061035461071b36600461478f565b60009182526003602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561075257600080fd5b506103b16107613660046149bd565b6114cb565b6103b16107743660046149ff565b611524565b34801561078557600080fd5b506103b1610794366004614a71565b611745565b3480156107a557600080fd5b50610321600081565b3480156107ba57600080fd5b506103b16107c9366004614aa9565b61186c565b3480156107da57600080fd5b506107ee6107e9366004614ad7565b61187e565b60405161032b9190614b4c565b34801561080757600080fd5b506103b1610816366004614bae565b611973565b34801561082757600080fd5b5061083b6108363660046149ff565b611a6d565b6040805192151583526001600160a01b0390911660208301520161032b565b34801561086657600080fd5b50600a546001600160a01b03811690600160a01b900467ffffffffffffffff1661058c565b34801561089757600080fd5b506103216108a63660046144a8565b60106020526000908152604090205481565b3480156108c457600080fd5b50600a546108e090600160a01b900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161032b565b34801561090557600080fd5b506103216109143660046144a8565b611ae7565b34801561092557600080fd5b506103217f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b34801561095957600080fd5b506103b161096836600461478f565b611afe565b34801561097957600080fd5b50610384611b26565b34801561098e57600080fd5b5061035461099d366004614c12565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b3480156109d757600080fd5b506103b16109e6366004614c40565b611bb4565b3480156109f757600080fd5b506103b1610a06366004614ca9565b611c61565b348015610a1757600080fd5b506104277f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b038316610ac25760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b6000610af682611de0565b80610b1157506001600160e01b03198216636cdb3d1360e11b145b80610ae557506001600160e01b0319821663152a902d60e11b1492915050565b6000818152600f60205260409020805460609190610b4e90614cde565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a90614cde565b8015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b50505050509050919050565b610be0600061071b611e05565b610c205760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b6001600160a01b03811660009081527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610ab9565b600880546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b236491015b60405180910390a15050565b610d16600061071b611e05565b610d565760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b600980546001600160a01b0319166001600160a01b0383169081179091556040517fed7c53958229df192be89db848f5fe293dac272a385cea89cc8a4cd1ea5fd9d290600090a250565b600080600080610daf86610f5f565b90945084925061ffff169050612710610dc88287614d2f565b610dd29190614d4e565b925050509250929050565b610de5611e05565b6001600160a01b0316856001600160a01b03161480610e0b5750610e0b8561099d611e05565b610e7d5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610ab9565b610e8a8585858585611e0f565b5050505050565b600082815260036020526040902060010154610eb481610eaf611e05565b61207e565b610ebe83836120fe565b505050565b610ecb611e05565b6001600160a01b0316816001600160a01b031614610f515760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610ab9565b610f5b8282612120565b5050565b6000818152601160209081526040808320815180830190925280546001600160a01b031680835260019091015492820192909252829115610fa65780516020820151610fc6565b600a546001600160a01b03811690600160a01b900467ffffffffffffffff165b9250925050915091565b606081518351146110495760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610ab9565b6000835167ffffffffffffffff8111156110655761106561456b565b60405190808252806020026020018201604052801561108e578160200160208202803683370190505b50905060005b8451811015611106576110d98582815181106110b2576110b2614d70565b60200260200101518583815181106110cc576110cc614d70565b6020026020010151610a3f565b8282815181106110eb576110eb614d70565b60209081029190910101526110ff81614d86565b9050611094565b509392505050565b61111b600061071b611e05565b61115b5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b6127108111156111ad5760405162461bcd60e51b815260206004820152601260248201527f65786365656420726f79616c74792062707300000000000000000000000000006044820152606401610ab9565b600a80546001600160a01b0384166001600160e01b03199091168117600160a01b67ffffffffffffffff8516021790915560408051918252602082018390527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9101610cfd565b61121c611e05565b6001600160a01b0316836001600160a01b0316148061124257506112428361099d611e05565b6112a15760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610ab9565b610ebe838383612142565b6112b9600061071b611e05565b6112f95760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b61271081111561134b5760405162461bcd60e51b815260206004820152600d60248201527f627073203c3d2031303030302e000000000000000000000000000000000000006044820152606401610ab9565b600b80546effffffffffffffffffffffffffffff19166effffffffffffffffffffffffffffff83161790556040518181527f2440645f96173394eb0d508ef9d0c95e3ddc41c6a10ef86e547fc738df9ecce2906020015b60405180910390a150565b6113ba600061071b611e05565b6113fa5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b600b8054821515600160781b026fff000000000000000000000000000000199091161790556040517f2ebd4f59eaa9d49c5dcd06a0afa8b39bf09928fbd60111acee2f986fa485d098906113a290831515815260200190565b6008546001600160a01b031660009081527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff602052604081205460ff1661149a5750600090565b6008546001600160a01b03165b905090565b60008281526004602052604081206114c49083612390565b9392505050565b6114d8600061071b611e05565b6115185760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b610ebe600c838361438b565b600260065414156115775760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab9565b6002600655600061158984848461239c565b905060008061159b602087018761452c565b6001600160a01b0316146115bb576115b6602086018661452c565b6115c3565b6115c3611e05565b90506000600019866080013514156115f55750600780549060019060006115ea8385614da1565b9091555061163e9050565b6007548660800135106116375760405162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b6044820152606401610ab9565b5060808501355b6000611650604088016020890161452c565b6001600160a01b0316146116bf57604051806040016040528087602001602081019061167c919061452c565b6001600160a01b03908116825260408981013560209384015260008581526011845220835181546001600160a01b03191692169190911781559101516001909101555b6116db826116d060a0890189614db9565b848a60c001356124b6565b6116ec6116e787614e17565b6125b7565b80826001600160a01b0316846001600160a01b03167f922c35a1a4e1723ed6799a6fc4777e665abc52f9cc66c132d1f6e8768a9e07a3896040516117309190614f6a565b60405180910390a45050600160065550505050565b611752600061071b611e05565b6117925760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610ab9565b6127108111156117e45760405162461bcd60e51b815260206004820152601260248201527f65786365656420726f79616c74792062707300000000000000000000000000006044820152606401610ab9565b6040805180820182526001600160a01b038481168083526020808401868152600089815260118352869020945185546001600160a01b031916941693909317845591516001909301929092558251918252810183905284917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d910160405180910390a2505050565b610f5b611877611e05565b838361276f565b60608167ffffffffffffffff8111156118995761189961456b565b6040519080825280602002602001820160405280156118cc57816020015b60608152602001906001900390816118b75790505b50905060005b8281101561196c5761193c308585848181106118f0576118f0614d70565b90506020028101906119029190614db9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061286492505050565b82828151811061194e5761194e614d70565b6020026020010181905250808061196490614d86565b9150506118d2565b5092915050565b61199f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661071b611e05565b6119eb5760405162461bcd60e51b815260206004820152600b60248201527f6e6f74206d696e7465722e0000000000000000000000000000000000000000006044820152606401610ab9565b6000600019851415611a17575060078054906001906000611a0c8385614da1565b90915550611a589050565b6007548510611a555760405162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b6044820152606401610ab9565b50835b611a6586858584866124b6565b505050505050565b6000806000611a7d868686612889565b6101608701356000908152600e602052604090205490915060ff16158015611adc57506001600160a01b03811660009081527f5562e70da342db81569f3094d36be279beaca7ad8e08f434ea188e79d2bfe10c602052604090205460ff165b969095509350505050565b6000818152600460205260408120610ae5906128ed565b600082815260036020526040902060010154611b1c81610eaf611e05565b610ebe8383612120565b600c8054611b3390614cde565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5f90614cde565b8015611bac5780601f10611b8157610100808354040283529160200191611bac565b820191906000526020600020905b815481529060010190602001808311611b8f57829003601f168201915b505050505081565b611bbc611e05565b6001600160a01b0316856001600160a01b03161480611be25750611be28561099d611e05565b611c545760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201527f20617070726f76656400000000000000000000000000000000000000000000006064820152608401610ab9565b610e8a85858585856128f7565b611c69611e05565b6001600160a01b0316836001600160a01b03161480611c8f5750611c8f8361099d611e05565b611cee5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610ab9565b610ebe838383612aaf565b6005546000906001600160a01b0316331415611d1c575060131936013560601c90565b503390565b90565b3390565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff16610f5b5760008281526003602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611d87611e05565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006114c4836001600160a01b038416612c33565b60006001600160e01b03198216635a05180f60e01b1480610ae55750610ae582612c82565b60006114a7611cf9565b8151835114611e715760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610ab9565b6001600160a01b038416611ed55760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610ab9565b6000611edf611e05565b9050611eef818787878787612ca7565b60005b8451811015612018576000858281518110611f0f57611f0f614d70565b602002602001015190506000858381518110611f2d57611f2d614d70565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015611fc05760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610ab9565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611ffd908490614da1565b925050819055505050508061201190614d86565b9050611ef2565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612068929190615099565b60405180910390a4611a65818787878787612ec2565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff16610f5b576120bc816001600160a01b03166014613077565b6120c7836020613077565b6040516020016120d89291906150c7565b60408051601f198184030181529082905262461bcd60e51b8252610ab991600401614519565b6121088282611d28565b6000828152600460205260409020610ebe9082611dcb565b61212a8282613220565b6000828152600460205260409020610ebe90826132c1565b6001600160a01b0383166121a45760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610ab9565b80518251146122065760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610ab9565b6000612210611e05565b905061223081856000868660405180602001604052806000815250612ca7565b60005b835181101561233157600084828151811061225057612250614d70565b60200260200101519050600084838151811061226e5761226e614d70565b602090810291909101810151600084815280835260408082206001600160a01b038c1683529093529190912054909150818110156122fa5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610ab9565b6000928352602083815260408085206001600160a01b038b168652909152909220910390558061232981614d86565b915050612233565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612382929190615099565b60405180910390a450505050565b60006114c483836132d6565b60008060006123ac868686611a6d565b91509150816123fd5760405162461bcd60e51b815260206004820152601160248201527f696e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610ab9565b4261241061014088016101208901615148565b6001600160801b03161115801561244157504261243561016088016101408901615148565b6001600160801b031610155b61248d5760405162461bcd60e51b815260206004820152600f60248201527f72657175657374206578706972656400000000000000000000000000000000006044820152606401610ab9565b6101608601356000908152600e60205260409020805460ff191660011790559150509392505050565b6000828152600f6020526040902080546124cf90614cde565b1515905061253f57826125245760405162461bcd60e51b815260206004820152600a60248201527f656d707479207572692e000000000000000000000000000000000000000000006044820152606401610ab9565b6000828152600f6020526040902061253d90858561438b565b505b61255a85838360405180602001604052806000815250613300565b81856001600160a01b03167faaabadf30377b070ea448b56e05e18337b24c16080fd4d7cac341320baa8b65a600f6000868152602001908152602001600020846040516125a8929190615163565b60405180910390a35050505050565b60e08101516125c35750565b60008160c001518260e001516125d99190614d2f565b600b5490915060009061271090612601906effffffffffffffffffffffffffffff1684614d2f565b61260b9190614d4e565b6101008401519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612687578134146126875760405162461bcd60e51b815260206004820152601660248201527f6d7573742073656e6420746f74616c2070726963652e000000000000000000006044820152606401610ab9565b60608301516000906001600160a01b0316156126a75783606001516126b4565b6009546001600160a01b03165b90506127488461010001516126c7611e05565b600d5460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b15801561270a57600080fd5b505afa15801561271e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127429190615213565b8561340c565b612769846101000151612759611e05565b836127648688615230565b61340c565b50505050565b816001600160a01b0316836001600160a01b031614156127f75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610ab9565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606114c48383604051806060016040528060278152602001615450602791396135ea565b60006128e583838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128df92506128d391508890506136d5565b8051906020012061382b565b90613879565b949350505050565b6000610ae5825490565b6001600160a01b03841661295b5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610ab9565b6000612965611e05565b905061298581878761297688613895565b61297f88613895565b87612ca7565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015612a095760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608401610ab9565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290612a46908490614da1565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612aa68288888888886138e0565b50505050505050565b6001600160a01b038316612b115760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610ab9565b6000612b1b611e05565b9050612b4b81856000612b2d87613895565b612b3687613895565b60405180602001604052806000815250612ca7565b6000838152602081815260408083206001600160a01b038816845290915290205482811015612bc85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610ab9565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6000818152600183016020526040812054612c7a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ae5565b506000610ae5565b60006001600160e01b03198216637965db0b60e01b1480610ae55750610ae5826139eb565b600b54600160781b900460ff168015612cc857506001600160a01b03851615155b8015612cdc57506001600160a01b03841615155b15612db6576001600160a01b03851660009081527fd42b1f43d615c6e11d7128c3dc0271972190d90aa8fbf570ea51e7ace340fbbb602052604090205460ff1680612d5e57506001600160a01b03841660009081527fd42b1f43d615c6e11d7128c3dc0271972190d90aa8fbf570ea51e7ace340fbbb602052604090205460ff165b612db65760405162461bcd60e51b8152602060048201526024808201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526332b9399760e11b6064820152608401610ab9565b6001600160a01b038516612e3d5760005b8351811015612e3b57828181518110612de257612de2614d70565b602002602001015160106000868481518110612e0057612e00614d70565b602002602001015181526020019081526020016000206000828254612e259190614da1565b90915550612e34905081614d86565b9050612dc7565b505b6001600160a01b038416611a655760005b8351811015612aa657828181518110612e6957612e69614d70565b602002602001015160106000868481518110612e8757612e87614d70565b602002602001015181526020019081526020016000206000828254612eac9190615230565b90915550612ebb905081614d86565b9050612e4e565b6001600160a01b0384163b15611a655760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612f069089908990889088908890600401615247565b602060405180830381600087803b158015612f2057600080fd5b505af1925050508015612f50575060408051601f3d908101601f19168201909252612f4d918101906152a5565b60015b61300657612f5c6152c2565b806308c379a01415612f965750612f716152dd565b80612f7c5750612f98565b8060405162461bcd60e51b8152600401610ab99190614519565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610ab9565b6001600160e01b0319811663bc197c8160e01b14612aa65760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610ab9565b60606000613086836002614d2f565b613091906002614da1565b67ffffffffffffffff8111156130a9576130a961456b565b6040519080825280601f01601f1916602001820160405280156130d3576020820181803683370190505b509050600360fc1b816000815181106130ee576130ee614d70565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061311d5761311d614d70565b60200101906001600160f81b031916908160001a9053506000613141846002614d2f565b61314c906001614da1565b90505b60018111156131d1577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061318d5761318d614d70565b1a60f81b8282815181106131a3576131a3614d70565b60200101906001600160f81b031916908160001a90535060049490941c936131ca81615367565b905061314f565b5083156114c45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ab9565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff1615610f5b5760008281526003602090815260408083206001600160a01b03851684529091529020805460ff1916905561327d611e05565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60006114c4836001600160a01b038416613a3b565b60008260000182815481106132ed576132ed614d70565b9060005260206000200154905092915050565b6001600160a01b0384166133605760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610ab9565b600061336a611e05565b905061337c8160008761297688613895565b6000848152602081815260408083206001600160a01b0389168452909152812080548592906133ac908490614da1565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610e8a816000878787876138e0565b8061341657612769565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156135de576001600160a01b0383163014156134d557604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156134ae57600080fd5b505af11580156134c2573d6000803e3d6000fd5b505050506134d08282613b2e565b612769565b6001600160a01b0382163014156135d45734811461355b5760405162461bcd60e51b815260206004820152602d60248201527f6e617469766520746f6b656e2076616c756520646f6573206e6f74206d61746360448201527f682062696420616d6f756e742e000000000000000000000000000000000000006064820152608401610ab9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156135b657600080fd5b505af11580156135ca573d6000803e3d6000fd5b5050505050612769565b6134d08282613b2e565b61276984848484613c25565b6060833b6136605760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610ab9565b600080856001600160a01b03168560405161367b919061537e565b600060405180830381855af49150503d80600081146136b6576040519150601f19603f3d011682016040523d82523d6000602084013e6136bb565b606091505b50915091506136cb828286613ec8565b9695505050505050565b60607fc7a95ef88f83fa833ccfce325157b7111633b181b6a27181b86415d8d501134d613705602084018461452c565b613715604085016020860161452c565b604085013561372a608087016060880161452c565b608087013561373c60a0890189614db9565b60405161374a92919061539a565b60405190819003902060c089013560e08a013561376f6101208c016101008d0161452c565b6137816101408d016101208e01615148565b6137936101608e016101408f01615148565b60408051602081019d909d526001600160a01b039b8c16908d0152988a1660608c015260808b019790975294881660a08a015260c089019390935260e08801919091526101008701526101208601529092166101408401526001600160801b039182166101608085019190915291166101808301528301356101a08201526101c0016040516020818303038152906040529050919050565b6000610ae5613838613f01565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006138888585614028565b9150915061110681614098565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106138cf576138cf614d70565b602090810291909101015292915050565b6001600160a01b0384163b15611a655760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061392490899089908890889088906004016153aa565b602060405180830381600087803b15801561393e57600080fd5b505af192505050801561396e575060408051601f3d908101601f1916820190925261396b918101906152a5565b60015b61397a57612f5c6152c2565b6001600160e01b0319811663f23a6e6160e01b14612aa65760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b6064820152608401610ab9565b60006001600160e01b03198216636cdb3d1360e11b1480613a1c57506001600160e01b031982166303a24d0760e21b145b80610ae557506301ffc9a760e01b6001600160e01b0319831614610ae5565b60008181526001830160205260408120548015613b24576000613a5f600183615230565b8554909150600090613a7390600190615230565b9050818114613ad8576000866000018281548110613a9357613a93614d70565b9060005260206000200154905080876000018481548110613ab657613ab6614d70565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ae957613ae96153ed565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ae5565b6000915050610ae5565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613b7b576040519150601f19603f3d011682016040523d82523d6000602084013e613b80565b606091505b5050905080610ebe577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015613be457600080fd5b505af1158015613bf8573d6000803e3d6000fd5b5050505050610ebe7f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b03161415613c4457612769565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b158015613c8957600080fd5b505afa158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc19190615403565b905060006001600160a01b0385163014613d64576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528716906323b872dd90606401602060405180830381600087803b158015613d2757600080fd5b505af1158015613d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d5f919061541c565b613de6565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b158015613dae57600080fd5b505af1158015613dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613de6919061541c565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b158015613e2d57600080fd5b505afa158015613e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e659190615403565b9050818015613e7c5750613e798484614da1565b81145b612aa65760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e000000006044820152606401610ab9565b60608315613ed75750816114c4565b825115613ee75782518084602001fd5b8160405162461bcd60e51b8152600401610ab99190614519565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f5a57507f000000000000000000000000000000000000000000000000000000000000000046145b15613f8457507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041141561405f5760208301516040840151606085015160001a61405387828585614256565b94509450505050614091565b825160401415614089576020830151604084015161407e868383614343565b935093505050614091565b506000905060025b9250929050565b60008160048111156140ac576140ac615439565b14156140b55750565b60018160048111156140c9576140c9615439565b14156141175760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab9565b600281600481111561412b5761412b615439565b14156141795760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab9565b600381600481111561418d5761418d615439565b14156141e65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab9565b60048160048111156141fa576141fa615439565b14156142535760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab9565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561428d575060009050600361433a565b8460ff16601b141580156142a557508460ff16601c14155b156142b6575060009050600461433a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561430a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166143335760006001925092505061433a565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b0161437d87828885614256565b935093505050935093915050565b82805461439790614cde565b90600052602060002090601f0160209004810192826143b957600085556143ff565b82601f106143d25782800160ff198235161785556143ff565b828001600101855582156143ff579182015b828111156143ff5782358255916020019190600101906143e4565b5061440b92915061440f565b5090565b5b8082111561440b5760008155600101614410565b6001600160a01b038116811461425357600080fd5b803561444481614424565b919050565b6000806040838503121561445c57600080fd5b823561446781614424565b946020939093013593505050565b6001600160e01b03198116811461425357600080fd5b60006020828403121561449d57600080fd5b81356114c481614475565b6000602082840312156144ba57600080fd5b5035919050565b60005b838110156144dc5781810151838201526020016144c4565b838111156127695750506000910152565b600081518084526145058160208601602086016144c1565b601f01601f19169290920160200192915050565b6020815260006114c460208301846144ed565b60006020828403121561453e57600080fd5b81356114c481614424565b6000806040838503121561455c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156145a7576145a761456b565b6040525050565b604051610180810167ffffffffffffffff811182821017156145d2576145d261456b565b60405290565b600067ffffffffffffffff8211156145f2576145f261456b565b5060051b60200190565b600082601f83011261460d57600080fd5b8135602061461a826145d8565b6040516146278282614581565b83815260059390931b850182019282810191508684111561464757600080fd5b8286015b84811015614662578035835291830191830161464b565b509695505050505050565b600082601f83011261467e57600080fd5b813567ffffffffffffffff8111156146985761469861456b565b6040516146af601f8301601f191660200182614581565b8181528460208386010111156146c457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156146f957600080fd5b853561470481614424565b9450602086013561471481614424565b9350604086013567ffffffffffffffff8082111561473157600080fd5b61473d89838a016145fc565b9450606088013591508082111561475357600080fd5b61475f89838a016145fc565b9350608088013591508082111561477557600080fd5b506147828882890161466d565b9150509295509295909350565b600080604083850312156147a257600080fd5b8235915060208301356147b481614424565b809150509250929050565b600080604083850312156147d257600080fd5b823567ffffffffffffffff808211156147ea57600080fd5b818501915085601f8301126147fe57600080fd5b8135602061480b826145d8565b6040516148188282614581565b83815260059390931b850182019282810191508984111561483857600080fd5b948201945b8386101561485f57853561485081614424565b8252948201949082019061483d565b9650508601359250508082111561487557600080fd5b50614882858286016145fc565b9150509250929050565b600081518084526020808501945080840160005b838110156148bc578151875295820195908201906001016148a0565b509495945050505050565b6020815260006114c4602083018461488c565b6000806000606084860312156148ef57600080fd5b83356148fa81614424565b9250602084013567ffffffffffffffff8082111561491757600080fd5b614923878388016145fc565b9350604086013591508082111561493957600080fd5b50614946868287016145fc565b9150509250925092565b801515811461425357600080fd5b60006020828403121561497057600080fd5b81356114c481614950565b60008083601f84011261498d57600080fd5b50813567ffffffffffffffff8111156149a557600080fd5b60208301915083602082850101111561409157600080fd5b600080602083850312156149d057600080fd5b823567ffffffffffffffff8111156149e757600080fd5b6149f38582860161497b565b90969095509350505050565b600080600060408486031215614a1457600080fd5b833567ffffffffffffffff80821115614a2c57600080fd5b908501906101808288031215614a4157600080fd5b90935060208501359080821115614a5757600080fd5b50614a648682870161497b565b9497909650939450505050565b600080600060608486031215614a8657600080fd5b833592506020840135614a9881614424565b929592945050506040919091013590565b60008060408385031215614abc57600080fd5b8235614ac781614424565b915060208301356147b481614950565b60008060208385031215614aea57600080fd5b823567ffffffffffffffff80821115614b0257600080fd5b818501915085601f830112614b1657600080fd5b813581811115614b2557600080fd5b8660208260051b8501011115614b3a57600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614ba157603f19888603018452614b8f8583516144ed565b94509285019290850190600101614b73565b5092979650505050505050565b600080600080600060808688031215614bc657600080fd5b8535614bd181614424565b945060208601359350604086013567ffffffffffffffff811115614bf457600080fd5b614c008882890161497b565b96999598509660600135949350505050565b60008060408385031215614c2557600080fd5b8235614c3081614424565b915060208301356147b481614424565b600080600080600060a08688031215614c5857600080fd5b8535614c6381614424565b94506020860135614c7381614424565b93506040860135925060608601359150608086013567ffffffffffffffff811115614c9d57600080fd5b6147828882890161466d565b600080600060608486031215614cbe57600080fd5b8335614cc981614424565b95602085013595506040909401359392505050565b600181811c90821680614cf257607f821691505b60208210811415614d1357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615614d4957614d49614d19565b500290565b600082614d6b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614d9a57614d9a614d19565b5060010190565b60008219821115614db457614db4614d19565b500190565b6000808335601e19843603018112614dd057600080fd5b83018035915067ffffffffffffffff821115614deb57600080fd5b60200191503681900382131561409157600080fd5b80356001600160801b038116811461444457600080fd5b60006101808236031215614e2a57600080fd5b614e326145ae565b614e3b83614439565b8152614e4960208401614439565b602082015260408301356040820152614e6460608401614439565b60608201526080830135608082015260a083013567ffffffffffffffff811115614e8d57600080fd5b614e993682860161466d565b60a08301525060c083013560c082015260e083013560e0820152610100614ec1818501614439565b90820152610120614ed3848201614e00565b90820152610140614ee5848201614e00565b9082015261016092830135928101929092525090565b6000808335601e19843603018112614f1257600080fd5b830160208101925035905067ffffffffffffffff811115614f3257600080fd5b80360383131561409157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152614f8b60208201614f7e84614439565b6001600160a01b03169052565b6000614f9960208401614439565b6001600160a01b03811660408401525060408301356060830152614fbf60608401614439565b6001600160a01b038116608084015250608083013560a0830152614fe660a0840184614efb565b6101808060c0860152614ffe6101a086018385614f41565b925060c086013560e0860152610100915060e086013582860152615023828701614439565b915061012061503c818701846001600160a01b03169052565b615047818801614e00565b925050610140615061818701846001600160801b03169052565b61506c818801614e00565b925050610160615086818701846001600160801b03169052565b9590950135939094019290925250919050565b6040815260006150ac604083018561488c565b82810360208401526150be818561488c565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150ff8160178501602088016144c1565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161513c8160288401602088016144c1565b01602801949350505050565b60006020828403121561515a57600080fd5b6114c482614e00565b60408152600080845481600182811c91508083168061518357607f831692505b60208084108214156151a357634e487b7160e01b86526022600452602486fd5b60408801849052606088018280156151c257600181146151d3576151fe565b60ff198716825282820197506151fe565b60008c81526020902060005b878110156151f8578154848201529086019084016151df565b83019850505b50509690960196909652509095945050505050565b60006020828403121561522557600080fd5b81516114c481614424565b60008282101561524257615242614d19565b500390565b60006001600160a01b03808816835280871660208401525060a0604083015261527360a083018661488c565b8281036060840152615285818661488c565b9050828103608084015261529981856144ed565b98975050505050505050565b6000602082840312156152b757600080fd5b81516114c481614475565b600060033d1115611d215760046000803e5060005160e01c90565b600060443d10156152eb5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561531b57505050505090565b82850191508151818111156153335750505050505090565b843d870101602082850101111561534d5750505050505090565b61535c60208286010187614581565b509095945050505050565b60008161537657615376614d19565b506000190190565b600082516153908184602087016144c1565b9190910192915050565b8183823760009101908152919050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526153e260a08301846144ed565b979650505050505050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561541557600080fd5b5051919050565b60006020828403121561542e57600080fd5b81516114c481614950565b634e487b7160e01b600052602160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$z = function isSuperArgs(xs) {
return xs.length > 1;
};
var SignatureMint1155__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(SignatureMint1155__factory, _ContractFactory);
function SignatureMint1155__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$z(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1j, _bytecode$z, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = SignatureMint1155__factory.prototype;
_proto.deploy = function deploy(_contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
SignatureMint1155__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1j);
};
SignatureMint1155__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1j, signerOrProvider);
};
return SignatureMint1155__factory;
}(ContractFactory);
SignatureMint1155__factory.bytecode = _bytecode$z;
SignatureMint1155__factory.abi = _abi$1j;
/* Autogenerated file. Do not edit manually. */
var _abi$1k = [{
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "signer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
indexed: false,
internalType: "struct ISignatureMint721.MintRequest",
name: "mintRequest",
type: "tuple"
}],
name: "MintWithSignature",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "uri",
type: "string"
}],
name: "TokenMinted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}],
name: "mintTo",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint721.MintRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "mintWithSignature",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint721.MintRequest",
name: "req",
type: "tuple"
}, {
internalType: "bytes",
name: "signature",
type: "bytes"
}],
name: "verify",
outputs: [{
internalType: "bool",
name: "success",
type: "bool"
}, {
internalType: "address",
name: "signer",
type: "address"
}],
stateMutability: "view",
type: "function"
}];
var ISignatureMint721__factory = /*#__PURE__*/function () {
function ISignatureMint721__factory() {}
ISignatureMint721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1k);
};
ISignatureMint721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1k, signerOrProvider);
};
return ISignatureMint721__factory;
}();
ISignatureMint721__factory.abi = _abi$1k;
var _abi$1l = [{
inputs: [{
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "string",
name: "_symbol",
type: "string"
}, {
internalType: "string",
name: "_contractURI",
type: "string"
}, {
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "address",
name: "_nativeTokenWrapper",
type: "address"
}, {
internalType: "address",
name: "_saleRecipient",
type: "address"
}, {
internalType: "uint128",
name: "_royaltyBps",
type: "uint128"
}, {
internalType: "uint128",
name: "_feeBps",
type: "uint128"
}],
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: "signer",
type: "address"
}, {
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
indexed: false,
internalType: "struct ISignatureMint721.MintRequest",
name: "mintRequest",
type: "tuple"
}],
name: "MintWithSignature",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "prevOwner",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "newOwner",
type: "address"
}],
name: "NewOwner",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
}],
name: "NewSaleRecipient",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "newFeeBps",
type: "uint256"
}],
name: "PrimarySalesFeeUpdates",
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: [{
indexed: false,
internalType: "uint256",
name: "newRoyaltyBps",
type: "uint256"
}],
name: "RoyaltyUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "mintedTo",
type: "address"
}, {
indexed: true,
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "uri",
type: "string"
}],
name: "TokenMinted",
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"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "bool",
name: "restricted",
type: "bool"
}],
name: "TransfersRestricted",
type: "event"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "MINTER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "TRANSFER_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "approve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "burn",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "defaultSaleRecipient",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "feeBps",
outputs: [{
internalType: "uint120",
name: "",
type: "uint120"
}],
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: "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: "address",
name: "owner",
type: "address"
}, {
internalType: "address",
name: "operator",
type: "address"
}],
name: "isApprovedForAll",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_to",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
name: "mintTo",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint721.MintRequest",
name: "_req",
type: "tuple"
}, {
internalType: "bytes",
name: "_signature",
type: "bytes"
}],
name: "mintWithSignature",
outputs: [{
internalType: "uint256",
name: "tokenIdMinted",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nativeTokenWrapper",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "nextTokenIdToMint",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "owner",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "tokenId",
type: "uint256"
}],
name: "ownerOf",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "royaltyBps",
outputs: [{
internalType: "uint64",
name: "",
type: "uint64"
}],
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: "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: "_uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_saleRecipient",
type: "address"
}],
name: "setDefaultSaleRecipient",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_feeBps",
type: "uint256"
}],
name: "setFeeBps",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "_newOwner",
type: "address"
}],
name: "setOwner",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bool",
name: "_restrictedTransfer",
type: "bool"
}],
name: "setRestrictedTransfer",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "_royaltyBps",
type: "uint256"
}],
name: "setRoyaltyBps",
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: [],
name: "transfersRestricted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
components: [{
internalType: "address",
name: "to",
type: "address"
}, {
internalType: "string",
name: "uri",
type: "string"
}, {
internalType: "uint256",
name: "price",
type: "uint256"
}, {
internalType: "address",
name: "currency",
type: "address"
}, {
internalType: "uint128",
name: "validityStartTimestamp",
type: "uint128"
}, {
internalType: "uint128",
name: "validityEndTimestamp",
type: "uint128"
}, {
internalType: "bytes32",
name: "uid",
type: "bytes32"
}],
internalType: "struct ISignatureMint721.MintRequest",
name: "_req",
type: "tuple"
}, {
internalType: "bytes",
name: "_signature",
type: "bytes"
}],
name: "verify",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}, {
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}];
var _bytecode$A = "0x6101606040523480156200001257600080fd5b50604051620050c8380380620050c88339810160408190526200003591620005d8565b846040518060400160405280601081526020016f5369676e61747572654d696e7437323160801b815250604051806040016040528060018152602001603160f81b8152508b8b81600090805190602001906200009392919062000430565b508051620000a990600190602084019062000430565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c052610120525050600c80546001600160a01b03199081166001600160a01b03958616179091556001600d556013805482168b861617905587841661014052600f805490911693871693909317909255505086516200019a9060129060208a019062000430565b50601180546001600160781b03831668010000000000000000026001600160b81b03199091166001600160401b038516171790556000620001da6200026c565b600e80546001600160a01b0319166001600160a01b03831617905590506200020460008262000288565b620002307f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68262000288565b6200025c7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c8262000288565b5050505050505050505062000717565b6000620002836200029860201b62001c391760201c565b905090565b620002948282620002d1565b5050565b600c546000906001600160a01b0316331415620002bc575060131936013560601c90565b620002836200031460201b62001c611760201c565b620002e882826200031860201b62001c651760201c565b6000828152600b602090815260409091206200030f91839062001d08620003be821b17901c565b505050565b3390565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1662000294576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200037a6200026c565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003d5836001600160a01b038416620003de565b90505b92915050565b60008181526001830160205260408120546200042757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003d8565b506000620003d8565b8280546200043e90620006da565b90600052602060002090601f016020900481019282620004625760008555620004ad565b82601f106200047d57805160ff1916838001178555620004ad565b82800160010185558215620004ad579182015b82811115620004ad57825182559160200191906001019062000490565b50620004bb929150620004bf565b5090565b5b80821115620004bb5760008155600101620004c0565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620004fe57600080fd5b81516001600160401b03808211156200051b576200051b620004d6565b604051601f8301601f19908116603f01168101908282118183101715620005465762000546620004d6565b816040528381526020925086838588010111156200056357600080fd5b600091505b8382101562000587578582018301518183018401529082019062000568565b83821115620005995760008385830101525b9695505050505050565b80516001600160a01b0381168114620005bb57600080fd5b919050565b80516001600160801b0381168114620005bb57600080fd5b60008060008060008060008060006101208a8c031215620005f857600080fd5b89516001600160401b03808211156200061057600080fd5b6200061e8d838e01620004ec565b9a5060208c01519150808211156200063557600080fd5b620006438d838e01620004ec565b995060408c01519150808211156200065a57600080fd5b50620006698c828d01620004ec565b9750506200067a60608b01620005a3565b95506200068a60808b01620005a3565b94506200069a60a08b01620005a3565b9350620006aa60c08b01620005a3565b9250620006ba60e08b01620005c0565b9150620006cb6101008b01620005c0565b90509295985092959850929598565b600181811c90821680620006ef57607f821691505b602082108114156200071157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516101405161493a6200078e600039600081816109ff01528181612cbc01528181612db701528181613325015261339c01526000613821015260006138700152600061384b015260006137a4015260006137ce015260006137f8015261493a6000f3fe6080604052600436106103075760003560e01c8063572b6c051161019a578063a22cb465116100e1578063ca15c8731161008a578063e8a3d48511610064578063e8a3d4851461098f578063e985e9c5146109a4578063f9ea29cb146109ed57600080fd5b8063ca15c8731461091b578063d53913931461093b578063d547741f1461096f57600080fd5b8063b88d4fde116100bb578063b88d4fde146108a1578063c63adb2b146108c1578063c87b56dd146108fb57600080fd5b8063a22cb46514610815578063ac9650d814610835578063b4e9c5131461086257600080fd5b80638da5cb5b11610143578063938e3d7b1161011d578063938e3d7b146107cb57806395d89b41146107eb578063a217fddf1461080057600080fd5b80638da5cb5b146107505780639010d07c1461076557806391d148541461078557600080fd5b806372c27b621161017457806372c27b62146106ef5780638423df791461070f5780638ba448c21461073057600080fd5b8063572b6c05146106805780636352211e146106af57806370a08231146106cf57600080fd5b8063246b436b1161025e57806335aacc2d1161020757806342842e0e116101e157806342842e0e1461062057806342966c68146106405780634f6ccce71461066057600080fd5b806335aacc2d146105d757806336568abe146105ea5780633b1475a71461060a57600080fd5b80632a55205a116102385780632a55205a146105585780632f2ff15d146105975780632f745c59146105b757600080fd5b8063246b436b146104b4578063248a9ca3146104d457806324a9d8531461050457600080fd5b806313af4035116102c05780631f72d8311161029a5780631f72d83114610440578063206b60f91461046057806323b872dd1461049457600080fd5b806313af4035146103eb5780631490ee761461040b57806318160ddd1461042b57600080fd5b806306fdde03116102f157806306fdde031461036f578063081812fc14610391578063095ea7b3146103c957600080fd5b806275a3171461030c57806301ffc9a71461033f575b600080fd5b34801561031857600080fd5b5061032c610327366004613efe565b610a21565b6040519081526020015b60405180910390f35b34801561034b57600080fd5b5061035f61035a366004613f69565b610ab5565b6040519015158152602001610336565b34801561037b57600080fd5b50610384610ae1565b6040516103369190613fde565b34801561039d57600080fd5b506103b16103ac366004613ff1565b610b73565b6040516001600160a01b039091168152602001610336565b3480156103d557600080fd5b506103e96103e436600461400a565b610c08565b005b3480156103f757600080fd5b506103e9610406366004614036565b610d30565b34801561041757600080fd5b506103e9610426366004614036565b610e65565b34801561043757600080fd5b5060085461032c565b34801561044c57600080fd5b506103e961045b366004613ff1565b610efc565b34801561046c57600080fd5b5061032c7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c81565b3480156104a057600080fd5b506103e96104af366004614053565b610fdf565b3480156104c057600080fd5b50600f546103b1906001600160a01b031681565b3480156104e057600080fd5b5061032c6104ef366004613ff1565b6000908152600a602052604090206001015490565b34801561051057600080fd5b50601154610538906801000000000000000090046effffffffffffffffffffffffffffff1681565b6040516effffffffffffffffffffffffffffff9091168152602001610336565b34801561056457600080fd5b50610578610573366004614094565b61106d565b604080516001600160a01b039093168352602083019190915201610336565b3480156105a357600080fd5b506103e96105b23660046140b6565b61111e565b3480156105c357600080fd5b5061032c6105d236600461400a565b61114b565b61032c6105e53660046140e6565b6111f3565b3480156105f657600080fd5b506103e96106053660046140b6565b611319565b34801561061657600080fd5b5061032c60105481565b34801561062c57600080fd5b506103e961063b366004614053565b6113b5565b34801561064c57600080fd5b506103e961065b366004613ff1565b6113d0565b34801561066c57600080fd5b5061032c61067b366004613ff1565b611459565b34801561068c57600080fd5b5061035f61069b366004614036565b600c546001600160a01b0391821691161490565b3480156106bb57600080fd5b506103b16106ca366004613ff1565b6114fd565b3480156106db57600080fd5b5061032c6106ea366004614036565b611588565b3480156106fb57600080fd5b506103e961070a366004613ff1565b611622565b34801561071b57600080fd5b5060115461035f90600160b81b900460ff1681565b34801561073c57600080fd5b506103e961074b366004614158565b611727565b34801561075c57600080fd5b506103b16117dc565b34801561077157600080fd5b506103b1610780366004614094565b611835565b34801561079157600080fd5b5061035f6107a03660046140b6565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156107d757600080fd5b506103e96107e6366004614175565b61184d565b3480156107f757600080fd5b506103846118a6565b34801561080c57600080fd5b5061032c600081565b34801561082157600080fd5b506103e96108303660046141b7565b6118b5565b34801561084157600080fd5b506108556108503660046141e5565b6118c7565b604051610336919061425a565b34801561086e57600080fd5b5061088261087d3660046140e6565b6119bc565b6040805192151583526001600160a01b03909116602083015201610336565b3480156108ad57600080fd5b506103e96108bc366004614371565b611a35565b3480156108cd57600080fd5b506011546108e29067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610336565b34801561090757600080fd5b50610384610916366004613ff1565b611aca565b34801561092757600080fd5b5061032c610936366004613ff1565b611b6c565b34801561094757600080fd5b5061032c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b34801561097b57600080fd5b506103e961098a3660046140b6565b611b83565b34801561099b57600080fd5b50610384611bab565b3480156109b057600080fd5b5061035f6109bf3660046143f1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156109f957600080fd5b506103b17f000000000000000000000000000000000000000000000000000000000000000081565b6000610a4f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66107a0611d1d565b610aa05760405162461bcd60e51b815260206004820152600b60248201527f6e6f74206d696e7465722e00000000000000000000000000000000000000000060448201526064015b60405180910390fd5b610aab848484611d27565b90505b9392505050565b6000610ac082611daf565b80610adb57506001600160e01b0319821663152a902d60e11b145b92915050565b606060008054610af09061441f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1c9061441f565b8015610b695780601f10610b3e57610100808354040283529160200191610b69565b820191906000526020600020905b815481529060010190602001808311610b4c57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610bec5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a97565b506000908152600460205260409020546001600160a01b031690565b6000610c13826114fd565b9050806001600160a01b0316836001600160a01b03161415610c815760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a97565b806001600160a01b0316610c93611d1d565b6001600160a01b03161480610caf5750610caf816109bf611d1d565b610d215760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a97565b610d2b8383611dd4565b505050565b610d3d60006107a0611d1d565b610d7d5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b6001600160a01b03811660009081527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e3602052604090205460ff16610e045760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e00000000006044820152606401610a97565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b2364910160405180910390a15050565b610e7260006107a0611d1d565b610eb25760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f7469c47fe13b9fc961c218a4b283151f80fc15e3a95e1d1b95aeace021f3d0cc90600090a250565b610f0960006107a0611d1d565b610f495760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b612710811115610f8b5760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610a97565b6011805467ffffffffffffffff191667ffffffffffffffff83161790556040518181527f244ea8d7627f5a08f4299862bd5a45752842c183aee5b0fb0d1e4887bfa605b3906020015b60405180910390a150565b610ff0610fea611d1d565b82611e42565b6110625760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610a97565b610d2b838383611f39565b60135460405163f2aab4b360e01b815230600482015260009182916001600160a01b039091169063f2aab4b39060240160206040518083038186803b1580156110b557600080fd5b505afa1580156110c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ed919061445a565b6011549092506127109061110b9067ffffffffffffffff168561448d565b61111591906144ac565b90509250929050565b6000828152600a60205260409020600101546111418161113c611d1d565b6120f8565b610d2b8383612178565b600061115683611588565b82106111ca5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610a97565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60006002600d5414156112485760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a97565b6002600d55600061125a85858561219a565b905060008061126c6020880188614036565b6001600160a01b03161461128c576112876020870187614036565b611294565b611294611d1d565b90506112ac816112a760208901896144ce565b611d27565b92506112bf6112ba8761454c565b6122af565b82816001600160a01b0316836001600160a01b03167f98a5555b76348ffb11b66617e8beae36a962a5b5d546454bf2e81f551ee65b17896040516113039190614614565b60405180910390a450506001600d559392505050565b611321611d1d565b6001600160a01b0316816001600160a01b0316146113a75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a97565b6113b1828261243f565b5050565b610d2b83838360405180602001604052806000815250611a35565b6113db610fea611d1d565b61144d5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f766564000000000000000000000000000000006064820152608401610a97565b61145681612461565b50565b600061146460085490565b82106114d85760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610a97565b600882815481106114eb576114eb614702565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b031680610adb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610a97565b60006001600160a01b0382166116065760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610a97565b506001600160a01b031660009081526003602052604090205490565b61162f60006107a0611d1d565b61166f5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b6127108111156116b15760405162461bcd60e51b815260206004820152600d60248201526c313839901e1e9018981818181760991b6044820152606401610a97565b601180547fffffffffffffffffff000000000000000000000000000000ffffffffffffffff16680100000000000000006effffffffffffffffffffffffffffff8416021790556040518181527f2440645f96173394eb0d508ef9d0c95e3ddc41c6a10ef86e547fc738df9ecce290602001610fd4565b61173460006107a0611d1d565b6117745760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b60118054821515600160b81b027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff9091161790556040517f2ebd4f59eaa9d49c5dcd06a0afa8b39bf09928fbd60111acee2f986fa485d09890610fd490831515815260200190565b600e546001600160a01b031660009081527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e3602052604081205460ff166118235750600090565b600e546001600160a01b03165b905090565b6000828152600b60205260408120610aae9083612508565b61185a60006107a0611d1d565b61189a5760405162461bcd60e51b81526020600482015260116024820152703737ba1036b7b23ab6329030b236b4b71760791b6044820152606401610a97565b610d2b60128383613dfe565b606060018054610af09061441f565b6113b16118c0611d1d565b8383612514565b60608167ffffffffffffffff8111156118e2576118e26142bc565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b50905060005b828110156119b5576119853085858481811061193957611939614702565b905060200281019061194b91906144ce565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125e392505050565b82828151811061199757611997614702565b602002602001018190525080806119ad90614718565b91505061191b565b5092915050565b60008060006119cc868686612608565b60c087013560009081526014602052604090205490915060ff16158015611a2a57506001600160a01b03811660009081527faa1d7351356c4ddc11907b1ee0660f579cfdf507235af2ae01ecd22a4b7ceaae602052604090205460ff165b969095509350505050565b611a46611a40611d1d565b83611e42565b611ab85760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610a97565b611ac48484848461274e565b50505050565b6000818152601560205260409020805460609190611ae79061441f565b80601f0160208091040260200160405190810160405280929190818152602001828054611b139061441f565b8015611b605780601f10611b3557610100808354040283529160200191611b60565b820191906000526020600020905b815481529060010190602001808311611b4357829003601f168201915b50505050509050919050565b6000818152600b60205260408120610adb906127d7565b6000828152600a6020526040902060010154611ba18161113c611d1d565b610d2b838361243f565b60128054611bb89061441f565b80601f0160208091040260200160405190810160405280929190818152602001828054611be49061441f565b8015611c315780601f10611c0657610100808354040283529160200191611c31565b820191906000526020600020905b815481529060010190602001808311611c1457829003601f168201915b505050505081565b600c546000906001600160a01b0316331415611c5c575060131936013560601c90565b503390565b3390565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff166113b1576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611cc4611d1d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610aae836001600160a01b0384166127e1565b6000611830611c39565b60108054906001906000611d3b8385614733565b90915550506000818152601560205260409020611d59908484613dfe565b50611d648482612830565b80846001600160a01b03167fdf92894dc4675a7333caa5903b69cf5d8e8ec0d3f361c88207b6688e525703bb8585604051611da092919061474b565b60405180910390a39392505050565b60006001600160e01b03198216635a05180f60e01b1480610adb5750610adb8261297e565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e09826114fd565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316611ebb5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a97565b6000611ec6836114fd565b9050806001600160a01b0316846001600160a01b03161480611f015750836001600160a01b0316611ef684610b73565b6001600160a01b0316145b80611f3157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611f4c826114fd565b6001600160a01b031614611fc85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610a97565b6001600160a01b03821661202a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a97565b6120358383836129a3565b612040600082611dd4565b6001600160a01b038316600090815260036020526040812080546001929061206990849061475f565b90915550506001600160a01b0382166000908152600360205260408120805460019290612097908490614733565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff166113b157612136816001600160a01b03166014612abd565b612141836020612abd565b604051602001612152929190614776565b60408051601f198184030181529082905262461bcd60e51b8252610a9791600401613fde565b6121828282611c65565b6000828152600b60205260409020610d2b9082611d08565b60008060006121aa8686866119bc565b91509150816121fb5760405162461bcd60e51b815260206004820152601160248201527f696e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610a97565b4261220c60a08801608089016147f7565b6001600160801b03161115801561223b57504261222f60c0880160a089016147f7565b6001600160801b031610155b6122875760405162461bcd60e51b815260206004820152600f60248201527f72657175657374206578706972656400000000000000000000000000000000006044820152606401610a97565b60c08601356000908152601460205260409020805460ff191660011790559150509392505050565b60408101516122bb5750565b6011546040820151600091612710916122f1916801000000000000000090046effffffffffffffffffffffffffffff169061448d565b6122fb91906144ac565b60608301519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561237a578160400151341461237a5760405162461bcd60e51b815260206004820152601660248201527f6d7573742073656e6420746f74616c2070726963652e000000000000000000006044820152606401610a97565b61240b826060015161238a611d1d565b60135460405163f2aab4b360e01b81523060048201526001600160a01b039091169063f2aab4b39060240160206040518083038186803b1580156123cd57600080fd5b505afa1580156123e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612405919061445a565b84612c66565b6113b1826060015161241b611d1d565b600f5460408601516001600160a01b039091169061243a90869061475f565b612c66565b6124498282612e44565b6000828152600b60205260409020610d2b9082612ee5565b600061246c826114fd565b905061247a816000846129a3565b612485600083611dd4565b6001600160a01b03811660009081526003602052604081208054600192906124ae90849061475f565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000610aae8383612efa565b816001600160a01b0316836001600160a01b031614156125765760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a97565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060610aae838360405180606001604052806027815260200161490760279139612f24565b6000610aab83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061274892507f7be753404b419232a0cbe1f4008119e5492ba5aee88589248ca82f77a69c7582915061267790506020890189614036565b61268460208a018a6144ce565b604051612692929190614812565b604051809103902089604001358a60600160208101906126b29190614036565b6126c260a08d0160808e016147f7565b6126d260c08e0160a08f016147f7565b6040805160208101989098526001600160a01b03968716908801526060870194909452608086019290925290921660a08401526001600160801b0391821660c080850191909152911660e0830152880135610100820152610120016040516020818303038152906040528051906020012061300f565b9061305d565b612759848484611f39565b61276584848484613081565b611ac45760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a97565b6000610adb825490565b600081815260018301602052604081205461282857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610adb565b506000610adb565b6001600160a01b0382166128865760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a97565b6000818152600260205260409020546001600160a01b0316156128eb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a97565b6128f7600083836129a3565b6001600160a01b0382166000908152600360205260408120805460019290612920908490614733565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160e01b03198216637965db0b60e01b1480610adb5750610adb826131eb565b6129ae838383613210565b601154600160b81b900460ff1680156129cf57506001600160a01b03831615155b80156129e357506001600160a01b03821615155b15610d2b576001600160a01b03831660009081527fcac620bdf50017b4cd6565b0e242fc8527ad6e8070e64bc1078aa6ab54540dd0602052604090205460ff1680612a6557506001600160a01b03821660009081527fcac620bdf50017b4cd6565b0e242fc8527ad6e8070e64bc1078aa6ab54540dd0602052604090205460ff165b610d2b5760405162461bcd60e51b815260206004820152602360248201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526265727360e81b6064820152608401610a97565b60606000612acc83600261448d565b612ad7906002614733565b67ffffffffffffffff811115612aef57612aef6142bc565b6040519080825280601f01601f191660200182016040528015612b19576020820181803683370190505b509050600360fc1b81600081518110612b3457612b34614702565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612b6357612b63614702565b60200101906001600160f81b031916908160001a9053506000612b8784600261448d565b612b92906001614733565b90505b6001811115612c17577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612bd357612bd3614702565b1a60f81b828281518110612be957612be9614702565b60200101906001600160f81b031916908160001a90535060049490941c93612c1081614822565b9050612b95565b508315610aae5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a97565b80612c7057611ac4565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612e38576001600160a01b038316301415612d2f57604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015612d0857600080fd5b505af1158015612d1c573d6000803e3d6000fd5b50505050612d2a82826132c8565b611ac4565b6001600160a01b038216301415612e2e57348114612db55760405162461bcd60e51b815260206004820152602d60248201527f6e617469766520746f6b656e2076616c756520646f6573206e6f74206d61746360448201527f682062696420616d6f756e742e000000000000000000000000000000000000006064820152608401610a97565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e1057600080fd5b505af1158015612e24573d6000803e3d6000fd5b5050505050611ac4565b612d2a82826132c8565b611ac4848484846133bf565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16156113b1576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19169055612ea1611d1d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610aae836001600160a01b03841661366b565b6000826000018281548110612f1157612f11614702565b9060005260206000200154905092915050565b6060833b612f9a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a97565b600080856001600160a01b031685604051612fb59190614839565b600060405180830381855af49150503d8060008114612ff0576040519150601f19603f3d011682016040523d82523d6000602084013e612ff5565b606091505b509150915061300582828661375e565b9695505050505050565b6000610adb61301c613797565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061306c85856138be565b915091506130798161392e565b509392505050565b60006001600160a01b0384163b156131e057836001600160a01b031663150b7a026130aa611d1d565b8786866040518563ffffffff1660e01b81526004016130cc9493929190614855565b602060405180830381600087803b1580156130e657600080fd5b505af1925050508015613116575060408051601f3d908101601f1916820190925261311391810190614887565b60015b6131c6573d808015613144576040519150601f19603f3d011682016040523d82523d6000602084013e613149565b606091505b5080516131be5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a97565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f31565b506001949350505050565b60006001600160e01b0319821663780e9d6360e01b1480610adb5750610adb82613ae9565b6001600160a01b03831661326b5761326681600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61328e565b816001600160a01b0316836001600160a01b03161461328e5761328e8382613b39565b6001600160a01b0382166132a557610d2b81613bd6565b826001600160a01b0316826001600160a01b031614610d2b57610d2b8282613c85565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613315576040519150601f19603f3d011682016040523d82523d6000602084013e61331a565b606091505b5050905080610d2b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561337e57600080fd5b505af1158015613392573d6000803e3d6000fd5b5050505050610d2b7f00000000000000000000000000000000000000000000000000000000000000003085855b816001600160a01b0316836001600160a01b031614156133de57611ac4565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b15801561342357600080fd5b505afa158015613437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345b91906148a4565b905060006001600160a01b03851630146134fe576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528716906323b872dd90606401602060405180830381600087803b1580156134c157600080fd5b505af11580156134d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f991906148bd565b613580565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b15801561354857600080fd5b505af115801561355c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358091906148bd565b6040516370a0823160e01b81526001600160a01b0386811660048301529192506000918816906370a082319060240160206040518083038186803b1580156135c757600080fd5b505afa1580156135db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ff91906148a4565b905081801561361657506136138484614733565b81145b6136625760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f207472616e736665722063757272656e63792e000000006044820152606401610a97565b50505050505050565b6000818152600183016020526040812054801561375457600061368f60018361475f565b85549091506000906136a39060019061475f565b90508181146137085760008660000182815481106136c3576136c3614702565b90600052602060002001549050808760000184815481106136e6576136e6614702565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613719576137196148da565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610adb565b6000915050610adb565b6060831561376d575081610aae565b82511561377d5782518084602001fd5b8160405162461bcd60e51b8152600401610a979190613fde565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156137f057507f000000000000000000000000000000000000000000000000000000000000000046145b1561381a57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000808251604114156138f55760208301516040840151606085015160001a6138e987828585613cc9565b94509450505050613927565b82516040141561391f5760208301516040840151613914868383613db6565b935093505050613927565b506000905060025b9250929050565b6000816004811115613942576139426148f0565b141561394b5750565b600181600481111561395f5761395f6148f0565b14156139ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a97565b60028160048111156139c1576139c16148f0565b1415613a0f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a97565b6003816004811115613a2357613a236148f0565b1415613a7c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a97565b6004816004811115613a9057613a906148f0565b14156114565760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a97565b60006001600160e01b031982166380ac58cd60e01b1480613b1a57506001600160e01b03198216635b5e139f60e01b145b80610adb57506301ffc9a760e01b6001600160e01b0319831614610adb565b60006001613b4684611588565b613b50919061475f565b600083815260076020526040902054909150808214613ba3576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090613be89060019061475f565b60008381526009602052604081205460088054939450909284908110613c1057613c10614702565b906000526020600020015490508060088381548110613c3157613c31614702565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613c6957613c696148da565b6001900381819060005260206000200160009055905550505050565b6000613c9083611588565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613d005750600090506003613dad565b8460ff16601b14158015613d1857508460ff16601c14155b15613d295750600090506004613dad565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613d7d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613da657600060019250925050613dad565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b01613df087828885613cc9565b935093505050935093915050565b828054613e0a9061441f565b90600052602060002090601f016020900481019282613e2c5760008555613e72565b82601f10613e455782800160ff19823516178555613e72565b82800160010185558215613e72579182015b82811115613e72578235825591602001919060010190613e57565b50613e7e929150613e82565b5090565b5b80821115613e7e5760008155600101613e83565b6001600160a01b038116811461145657600080fd5b8035613eb781613e97565b919050565b60008083601f840112613ece57600080fd5b50813567ffffffffffffffff811115613ee657600080fd5b60208301915083602082850101111561392757600080fd5b600080600060408486031215613f1357600080fd5b8335613f1e81613e97565b9250602084013567ffffffffffffffff811115613f3a57600080fd5b613f4686828701613ebc565b9497909650939450505050565b6001600160e01b03198116811461145657600080fd5b600060208284031215613f7b57600080fd5b8135610aae81613f53565b60005b83811015613fa1578181015183820152602001613f89565b83811115611ac45750506000910152565b60008151808452613fca816020860160208601613f86565b601f01601f19169290920160200192915050565b602081526000610aae6020830184613fb2565b60006020828403121561400357600080fd5b5035919050565b6000806040838503121561401d57600080fd5b823561402881613e97565b946020939093013593505050565b60006020828403121561404857600080fd5b8135610aae81613e97565b60008060006060848603121561406857600080fd5b833561407381613e97565b9250602084013561408381613e97565b929592945050506040919091013590565b600080604083850312156140a757600080fd5b50508035926020909101359150565b600080604083850312156140c957600080fd5b8235915060208301356140db81613e97565b809150509250929050565b6000806000604084860312156140fb57600080fd5b833567ffffffffffffffff8082111561411357600080fd5b9085019060e0828803121561412757600080fd5b9093506020850135908082111561413d57600080fd5b50613f4686828701613ebc565b801515811461145657600080fd5b60006020828403121561416a57600080fd5b8135610aae8161414a565b6000806020838503121561418857600080fd5b823567ffffffffffffffff81111561419f57600080fd5b6141ab85828601613ebc565b90969095509350505050565b600080604083850312156141ca57600080fd5b82356141d581613e97565b915060208301356140db8161414a565b600080602083850312156141f857600080fd5b823567ffffffffffffffff8082111561421057600080fd5b818501915085601f83011261422457600080fd5b81358181111561423357600080fd5b8660208260051b850101111561424857600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156142af57603f1988860301845261429d858351613fb2565b94509285019290850190600101614281565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156142f5576142f56142bc565b60405290565b600067ffffffffffffffff80841115614316576143166142bc565b604051601f8501601f19908116603f0116810190828211818310171561433e5761433e6142bc565b8160405280935085815286868601111561435757600080fd5b858560208301376000602087830101525050509392505050565b6000806000806080858703121561438757600080fd5b843561439281613e97565b935060208501356143a281613e97565b925060408501359150606085013567ffffffffffffffff8111156143c557600080fd5b8501601f810187136143d657600080fd5b6143e5878235602084016142fb565b91505092959194509250565b6000806040838503121561440457600080fd5b823561440f81613e97565b915060208301356140db81613e97565b600181811c9082168061443357607f821691505b6020821081141561445457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561446c57600080fd5b8151610aae81613e97565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156144a7576144a7614477565b500290565b6000826144c957634e487b7160e01b600052601260045260246000fd5b500490565b6000808335601e198436030181126144e557600080fd5b83018035915067ffffffffffffffff82111561450057600080fd5b60200191503681900382131561392757600080fd5b600082601f83011261452657600080fd5b610aae838335602085016142fb565b80356001600160801b0381168114613eb757600080fd5b600060e0823603121561455e57600080fd5b6145666142d2565b61456f83613eac565b8152602083013567ffffffffffffffff81111561458b57600080fd5b61459736828601614515565b602083015250604083013560408201526145b360608401613eac565b60608201526145c460808401614535565b60808201526145d560a08401614535565b60a082015260c092830135928101929092525090565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000823561462581613e97565b6001600160a01b0381166020840152506020830135601e1984360301811261464c57600080fd5b8301803567ffffffffffffffff81111561466557600080fd5b80360385131561467457600080fd5b60e0604085015261468d610100850182602085016145eb565b915050604084013560608401526146a660608501613eac565b6001600160a01b0381166080850152506146c260808501614535565b6001600160801b03811660a0850152506146de60a08501614535565b6001600160801b03811660c08501525060c084013560e08401528091505092915050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561472c5761472c614477565b5060010190565b6000821982111561474657614746614477565b500190565b602081526000610aab6020830184866145eb565b60008282101561477157614771614477565b500390565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516147ae816017850160208801613f86565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516147eb816028840160208801613f86565b01602801949350505050565b60006020828403121561480957600080fd5b610aae82614535565b8183823760009101908152919050565b60008161483157614831614477565b506000190190565b6000825161484b818460208701613f86565b9190910192915050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526130056080830184613fb2565b60006020828403121561489957600080fd5b8151610aae81613f53565b6000602082840312156148b657600080fd5b5051919050565b6000602082840312156148cf57600080fd5b8151610aae8161414a565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$A = function isSuperArgs(xs) {
return xs.length > 1;
};
var SignatureMint721__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(SignatureMint721__factory, _ContractFactory);
function SignatureMint721__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$A(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1l, _bytecode$A, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = SignatureMint721__factory.prototype;
_proto.deploy = function deploy(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.deploy.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _name, _symbol, _contractURI, _controlCenter, _trustedForwarder, _nativeTokenWrapper, _saleRecipient, _royaltyBps, _feeBps, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
SignatureMint721__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1l);
};
SignatureMint721__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1l, signerOrProvider);
};
return SignatureMint721__factory;
}(ContractFactory);
SignatureMint721__factory.bytecode = _bytecode$A;
SignatureMint721__factory.abi = _abi$1l;
var _abi$1m = [{
inputs: [{
internalType: "address payable",
name: "_controlCenter",
type: "address"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}, {
internalType: "address[]",
name: "payees",
type: "address[]"
}, {
internalType: "uint256[]",
name: "shares_",
type: "uint256[]"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "ERC20PaymentReleased",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "shares",
type: "uint256"
}],
name: "PayeeAdded",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "from",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReceived",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "address",
name: "to",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}],
name: "PaymentReleased",
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"
}, {
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "distribute",
outputs: [],
stateMutability: "nonpayable",
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: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes[]",
name: "data",
type: "bytes[]"
}],
name: "multicall",
outputs: [{
internalType: "bytes[]",
name: "results",
type: "bytes[]"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "index",
type: "uint256"
}],
name: "payee",
outputs: [{
internalType: "address",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "payeeCount",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address payable",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "release",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "released",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "bytes32",
name: "role",
type: "bytes32"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "_URI",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}],
name: "shares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "contract IERC20",
name: "token",
type: "address"
}],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalReleased",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "totalShares",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$B = "0x60806040523480156200001157600080fd5b5060405162002a5138038062002a51833981016040819052620000349162000912565b600980546001600160a01b0319166001600160a01b0386161790558051825114620000cc5760405162461bcd60e51b815260206004820152603660248201527f526f79616c74793a20756e657175616c206e756d626572206f6620706179656560448201527f7320616e64207368617265732070726f76696465642e0000000000000000000060648201526084015b60405180910390fd5b60008251116200011f5760405162461bcd60e51b815260206004820152601c60248201527f526f79616c74793a206e6f207061796565732070726f76696465642e000000006044820152606401620000c3565b82516200013490600b90602086019062000704565b50600a80546001600160a01b0319166001600160a01b03871690811790915560408051637b10399960e01b8152905160009291637b103999916004808301926020929190829003018186803b1580156200018d57600080fd5b505afa158015620001a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c8919062000a4c565b9050601e600080805b86518110156200029d576000868281518110620001f257620001f262000a73565b602002602001015161271062000209919062000a9f565b905062000217818562000ac1565b935060006127106200022a878462000a9f565b62000236919062000adc565b9050600062000246828462000aff565b905062000254818662000ac1565b9450620002848a85815181106200026f576200026f62000a73565b6020026020010151826200035460201b60201c565b5050508080620002949062000b19565b915050620001d1565b506000620002ac828462000aff565b90506200032e856001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ec57600080fd5b505afa15801562000301573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000327919062000a4c565b8262000354565b6200034460006200033e62000540565b6200055c565b5050505050505050505062000b74565b6001600160a01b038216620003c15760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401620000c3565b60008111620004135760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401620000c3565b6001600160a01b038216600090815260026020526040902054156200048f5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401620000c3565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b038416908117909155600090815260026020526040812082905554620004f790829062000ac1565b600055604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b6000620005576200056c60201b62000e0d1760201c565b905090565b620005688282620005a5565b5050565b6009546000906001600160a01b031633141562000590575060131936013560601c90565b62000557620005e860201b62000e351760201c565b620005bc8282620005ec60201b62000e391760201c565b6000828152600860209081526040909120620005e391839062000edc62000692821b17901c565b505050565b3390565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16620005685760008281526007602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200064e62000540565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620006a9836001600160a01b038416620006b2565b90505b92915050565b6000818152600183016020526040812054620006fb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620006ac565b506000620006ac565b828054620007129062000b37565b90600052602060002090601f01602090048101928262000736576000855562000781565b82601f106200075157805160ff191683800117855562000781565b8280016001018555821562000781579182015b828111156200078157825182559160200191906001019062000764565b506200078f92915062000793565b5090565b5b808211156200078f576000815560010162000794565b6001600160a01b0381168114620007c057600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620008045762000804620007c3565b604052919050565b60006001600160401b03821115620008285762000828620007c3565b5060051b60200190565b600082601f8301126200084457600080fd5b815160206200085d62000857836200080c565b620007d9565b82815260059290921b840181019181810190868411156200087d57600080fd5b8286015b84811015620008a55780516200089781620007aa565b835291830191830162000881565b509695505050505050565b600082601f830112620008c257600080fd5b81516020620008d562000857836200080c565b82815260059290921b84018101918181019086841115620008f557600080fd5b8286015b84811015620008a55780518352918301918301620008f9565b600080600080600060a086880312156200092b57600080fd5b85516200093881620007aa565b809550506020808701516200094d81620007aa565b60408801519095506001600160401b03808211156200096b57600080fd5b818901915089601f8301126200098057600080fd5b815181811115620009955762000995620007c3565b620009a9601f8201601f19168501620007d9565b8181528b85838601011115620009be57600080fd5b60005b82811015620009de578481018601518282018701528501620009c1565b82811115620009f05760008684840101525b5060608b01519097509350508083111562000a0a57600080fd5b62000a188a848b0162000832565b9450608089015192508083111562000a2f57600080fd5b505062000a3f88828901620008b0565b9150509295509295909350565b60006020828403121562000a5f57600080fd5b815162000a6c81620007aa565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000abc5762000abc62000a89565b500290565b6000821982111562000ad75762000ad762000a89565b500190565b60008262000afa57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101562000b145762000b1462000a89565b500390565b600060001982141562000b305762000b3062000a89565b5060010190565b600181811c9082168062000b4c57607f821691505b6020821081141562000b6e57634e487b7160e01b600052602260045260246000fd5b50919050565b611ecd8062000b846000396000f3fe6080604052600436106101995760003560e01c80639010d07c116100e1578063ca15c8731161008a578063d79779b211610064578063d79779b21461054a578063e33b7de314610580578063e4fc6b6d14610595578063e8a3d485146105aa57600080fd5b8063ca15c873146104d4578063ce7c2ac2146104f4578063d547741f1461052a57600080fd5b80639852595c116100bb5780639852595c1461045c578063a217fddf14610492578063ac9650d8146104a757600080fd5b80639010d07c146103d657806391d14854146103f6578063938e3d7b1461043c57600080fd5b80633a98ef3911610143578063572b6c051161011d578063572b6c051461034f57806363453ae11461037e5780638b83209b1461039e57600080fd5b80633a98ef39146102d4578063406072a9146102e957806348b750441461032f57600080fd5b8063248a9ca311610174578063248a9ca3146102645780632f2ff15d1461029457806336568abe146102b457600080fd5b8062dbe109146101ee57806301ffc9a714610212578063191655871461024257600080fd5b366101e9577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706101c76105cc565b604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156101fa57600080fd5b506004545b6040519081526020015b60405180910390f35b34801561021e57600080fd5b5061023261022d3660046119a3565b6105db565b6040519015158152602001610209565b34801561024e57600080fd5b5061026261025d3660046119e2565b610606565b005b34801561027057600080fd5b506101ff61027f3660046119ff565b60009081526007602052604090206001015490565b3480156102a057600080fd5b506102626102af366004611a18565b6107bc565b3480156102c057600080fd5b506102626102cf366004611a18565b6107ee565b3480156102e057600080fd5b506000546101ff565b3480156102f557600080fd5b506101ff610304366004611a48565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561033b57600080fd5b5061026261034a366004611a48565b61088a565b34801561035b57600080fd5b5061023261036a3660046119e2565b6009546001600160a01b0391821691161490565b34801561038a57600080fd5b506102626103993660046119e2565b610af5565b3480156103aa57600080fd5b506103be6103b93660046119ff565b610b45565b6040516001600160a01b039091168152602001610209565b3480156103e257600080fd5b506103be6103f1366004611a76565b610b75565b34801561040257600080fd5b50610232610411366004611a18565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561044857600080fd5b50610262610457366004611a98565b610b94565b34801561046857600080fd5b506101ff6104773660046119e2565b6001600160a01b031660009081526003602052604090205490565b34801561049e57600080fd5b506101ff600081565b3480156104b357600080fd5b506104c76104c2366004611b0a565b610bf9565b6040516102099190611bc9565b3480156104e057600080fd5b506101ff6104ef3660046119ff565b610cee565b34801561050057600080fd5b506101ff61050f3660046119e2565b6001600160a01b031660009081526002602052604090205490565b34801561053657600080fd5b50610262610545366004611a18565b610d05565b34801561055657600080fd5b506101ff6105653660046119e2565b6001600160a01b031660009081526005602052604090205490565b34801561058c57600080fd5b506001546101ff565b3480156105a157600080fd5b50610262610d2d565b3480156105b657600080fd5b506105bf610d7f565b6040516102099190611c2b565b60006105d6610e0d565b905090565b60006001600160e01b03198216635a05180f60e01b1480610600575061060082610ef1565b92915050565b6001600160a01b03811660009081526002602052604090205461067f5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b60648201526084015b60405180910390fd5b600061068a60015490565b6106949047611c54565b905060006106c183836106bc866001600160a01b031660009081526003602052604090205490565b610f26565b9050806107245760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610676565b6001600160a01b0383166000908152600360205260408120805483929061074c908490611c54565b9250508190555080600160008282546107659190611c54565b9091555061077590508382610f69565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b6000828152600760205260409020600101546107df816107da6105cc565b611082565b6107e98383611102565b505050565b6107f66105cc565b6001600160a01b0316816001600160a01b03161461087c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610676565b6108868282611124565b5050565b6001600160a01b0381166000908152600260205260409020546108fe5760405162461bcd60e51b815260206004820152602660248201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060448201526573686172657360d01b6064820152608401610676565b6001600160a01b0382166000908152600560205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561095657600080fd5b505afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e9190611c6c565b6109989190611c54565b905060006109d183836106bc87876001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b905080610a345760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060448201526a191d59481c185e5b595b9d60aa1b6064820152608401610676565b6001600160a01b03808516600090815260066020908152604080832093871683529290529081208054839290610a6b908490611c54565b90915550506001600160a01b03841660009081526005602052604081208054839290610a98908490611c54565b90915550610aa99050848483611146565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b60005b60045481101561088657610b338260048381548110610b1957610b19611c85565b6000918252602090912001546001600160a01b031661088a565b80610b3d81611c9b565b915050610af8565b600060048281548110610b5a57610b5a611c85565b6000918252602090912001546001600160a01b031692915050565b6000828152600860205260408120610b8d90836111ad565b9392505050565b610ba160006104116105cc565b610bed5760405162461bcd60e51b815260206004820152601660248201527f6f6e6c79206d6f64756c652061646d696e20726f6c65000000000000000000006044820152606401610676565b6107e9600b838361190a565b60608167ffffffffffffffff811115610c1457610c14611cb6565b604051908082528060200260200182016040528015610c4757816020015b6060815260200190600190039081610c325790505b50905060005b82811015610ce757610cb730858584818110610c6b57610c6b611c85565b9050602002810190610c7d9190611ccc565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111b992505050565b828281518110610cc957610cc9611c85565b60200260200101819052508080610cdf90611c9b565b915050610c4d565b5092915050565b6000818152600860205260408120610600906111de565b600082815260076020526040902060010154610d23816107da6105cc565b6107e98383611124565b60005b600454811015610d7c57610d6a60048281548110610d5057610d50611c85565b6000918252602090912001546001600160a01b0316610606565b80610d7481611c9b565b915050610d30565b50565b600b8054610d8c90611d1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610db890611d1a565b8015610e055780601f10610dda57610100808354040283529160200191610e05565b820191906000526020600020905b815481529060010190602001808311610de857829003601f168201915b505050505081565b6009546000906001600160a01b0316331415610e30575060131936013560601c90565b503390565b3390565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166108865760008281526007602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610e986105cc565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610b8d836001600160a01b0384166111e8565b60006001600160e01b03198216637965db0b60e01b148061060057506301ffc9a760e01b6001600160e01b0319831614610600565b600080546001600160a01b038516825260026020526040822054839190610f4d9086611d55565b610f579190611d74565b610f619190611d96565b949350505050565b80471015610fb95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610676565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611006576040519150601f19603f3d011682016040523d82523d6000602084013e61100b565b606091505b50509050806107e95760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610676565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16610886576110c0816001600160a01b03166014611237565b6110cb836020611237565b6040516020016110dc929190611dad565b60408051601f198184030181529082905262461bcd60e51b825261067691600401611c2b565b61110c8282610e39565b60008281526008602052604090206107e99082610edc565b61112e82826113e0565b60008281526008602052604090206107e99082611481565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1790526107e9908490611496565b6000610b8d838361157b565b6060610b8d8383604051806060016040528060278152602001611e9a602791396115a5565b6000610600825490565b600081815260018301602052604081205461122f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610600565b506000610600565b60606000611246836002611d55565b611251906002611c54565b67ffffffffffffffff81111561126957611269611cb6565b6040519080825280601f01601f191660200182016040528015611293576020820181803683370190505b509050600360fc1b816000815181106112ae576112ae611c85565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112dd576112dd611c85565b60200101906001600160f81b031916908160001a9053506000611301846002611d55565b61130c906001611c54565b90505b6001811115611391577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061134d5761134d611c85565b1a60f81b82828151811061136357611363611c85565b60200101906001600160f81b031916908160001a90535060049490941c9361138a81611e2e565b905061130f565b508315610b8d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610676565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff16156108865760008281526007602090815260408083206001600160a01b03851684529091529020805460ff1916905561143d6105cc565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610b8d836001600160a01b038416611690565b60006114eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117839092919063ffffffff16565b8051909150156107e957808060200190518101906115099190611e45565b6107e95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610676565b600082600001828154811061159257611592611c85565b9060005260206000200154905092915050565b6060833b61161b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610676565b600080856001600160a01b0316856040516116369190611e67565b600060405180830381855af49150503d8060008114611671576040519150601f19603f3d011682016040523d82523d6000602084013e611676565b606091505b5091509150611686828286611792565b9695505050505050565b600081815260018301602052604081205480156117795760006116b4600183611d96565b85549091506000906116c890600190611d96565b905081811461172d5760008660000182815481106116e8576116e8611c85565b906000526020600020015490508087600001848154811061170b5761170b611c85565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061173e5761173e611e83565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610600565b6000915050610600565b6060610f6184846000856117cb565b606083156117a1575081610b8d565b8251156117b15782518084602001fd5b8160405162461bcd60e51b81526004016106769190611c2b565b6060824710156118435760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610676565b843b6118915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610676565b600080866001600160a01b031685876040516118ad9190611e67565b60006040518083038185875af1925050503d80600081146118ea576040519150601f19603f3d011682016040523d82523d6000602084013e6118ef565b606091505b50915091506118ff828286611792565b979650505050505050565b82805461191690611d1a565b90600052602060002090601f016020900481019282611938576000855561197e565b82601f106119515782800160ff1982351617855561197e565b8280016001018555821561197e579182015b8281111561197e578235825591602001919060010190611963565b5061198a92915061198e565b5090565b5b8082111561198a576000815560010161198f565b6000602082840312156119b557600080fd5b81356001600160e01b031981168114610b8d57600080fd5b6001600160a01b0381168114610d7c57600080fd5b6000602082840312156119f457600080fd5b8135610b8d816119cd565b600060208284031215611a1157600080fd5b5035919050565b60008060408385031215611a2b57600080fd5b823591506020830135611a3d816119cd565b809150509250929050565b60008060408385031215611a5b57600080fd5b8235611a66816119cd565b91506020830135611a3d816119cd565b60008060408385031215611a8957600080fd5b50508035926020909101359150565b60008060208385031215611aab57600080fd5b823567ffffffffffffffff80821115611ac357600080fd5b818501915085601f830112611ad757600080fd5b813581811115611ae657600080fd5b866020828501011115611af857600080fd5b60209290920196919550909350505050565b60008060208385031215611b1d57600080fd5b823567ffffffffffffffff80821115611b3557600080fd5b818501915085601f830112611b4957600080fd5b813581811115611b5857600080fd5b8660208260051b8501011115611af857600080fd5b60005b83811015611b88578181015183820152602001611b70565b83811115611b97576000848401525b50505050565b60008151808452611bb5816020860160208601611b6d565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611c1e57603f19888603018452611c0c858351611b9d565b94509285019290850190600101611bf0565b5092979650505050505050565b602081526000610b8d6020830184611b9d565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c6757611c67611c3e565b500190565b600060208284031215611c7e57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611caf57611caf611c3e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112611ce357600080fd5b83018035915067ffffffffffffffff821115611cfe57600080fd5b602001915036819003821315611d1357600080fd5b9250929050565b600181811c90821680611d2e57607f821691505b60208210811415611d4f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615611d6f57611d6f611c3e565b500290565b600082611d9157634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611da857611da8611c3e565b500390565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611de5816017850160208801611b6d565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351611e22816028840160208801611b6d565b01602801949350505050565b600081611e3d57611e3d611c3e565b506000190190565b600060208284031215611e5757600080fd5b81518015158114610b8d57600080fd5b60008251611e79818460208701611b6d565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a";
var isSuperArgs$B = function isSuperArgs(xs) {
return xs.length > 1;
};
var Splits__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(Splits__factory, _ContractFactory);
function Splits__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$B(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1m, _bytecode$B, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = Splits__factory.prototype;
_proto.deploy = function deploy(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.deploy.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_controlCenter, _trustedForwarder, _uri, payees, shares_, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _controlCenter, _trustedForwarder, _uri, payees, shares_, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
Splits__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1m);
};
Splits__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1m, signerOrProvider);
};
return Splits__factory;
}(ContractFactory);
Splits__factory.bytecode = _bytecode$B;
Splits__factory.abi = _abi$1m;
var _abi$1n = [{
inputs: [{
internalType: "address",
name: "_logic",
type: "address"
}, {
internalType: "bytes",
name: "_data",
type: "bytes"
}],
stateMutability: "payable",
type: "constructor"
}, {
stateMutability: "payable",
type: "fallback"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$C = "0x60806040526040516106a13803806106a183398101604081905261002291610258565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610326565b60008051602061065a833981519152146100695761006961034b565b8161008e60008051602061065a83398151915260001b6100d060201b61005f1760201c565b80546001600160a01b0319166001600160a01b03929092169190911790558051156100c9576100c782826100d360201b6100621760201c565b505b50506103b0565b90565b60606100f8838360405180606001604052806027815260200161067a602791396100ff565b9392505050565b6060833b6101635760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161017e9190610361565b600060405180830381855af49150503d80600081146101b9576040519150601f19603f3d011682016040523d82523d6000602084013e6101be565b606091505b5090925090506101cf8282866101d9565b9695505050505050565b606083156101e85750816100f8565b8251156101f85782518084602001fd5b8160405162461bcd60e51b815260040161015a919061037d565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561024357818101518382015260200161022b565b83811115610252576000848401525b50505050565b6000806040838503121561026b57600080fd5b82516001600160a01b038116811461028257600080fd5b60208401519092506001600160401b038082111561029f57600080fd5b818501915085601f8301126102b357600080fd5b8151818111156102c5576102c5610212565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610212565b8160405282815288602084870101111561030657600080fd5b610317836020830160208801610228565b80955050505050509250929050565b60008282101561034657634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b60008251610373818460208701610228565b9190910192915050565b602081526000825180602084015261039c816040850160208701610228565b601f01601f19169190910160400192915050565b61029b806103bf6000396000f3fe60806040523661001357610011610017565b005b6100115b61005d6100587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b61008e565b565b90565b60606100878383604051806060016040528060278152602001610268602791396100b2565b9392505050565b3660008037600080366000845af43d6000803e8080156100ad573d6000f35b3d6000fd5b6060833b61012d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516101559190610218565b600060405180830381855af49150503d8060008114610190576040519150601f19603f3d011682016040523d82523d6000602084013e610195565b606091505b50915091506101a58282866101af565b9695505050505050565b606083156101be575081610087565b8251156101ce5782518084602001fd5b8160405162461bcd60e51b81526004016101249190610234565b60005b838110156102035781810151838201526020016101eb565b83811115610212576000848401525b50505050565b6000825161022a8184602087016101e8565b9190910192915050565b60208152600082518060208401526102538160408501602087016101e8565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000809000a360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
var isSuperArgs$C = function isSuperArgs(xs) {
return xs.length > 1;
};
var ThirdwebProxy__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(ThirdwebProxy__factory, _ContractFactory);
function ThirdwebProxy__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$C(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1n, _bytecode$C, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = ThirdwebProxy__factory.prototype;
_proto.deploy = function deploy(_logic, _data, overrides) {
return _ContractFactory.prototype.deploy.call(this, _logic, _data, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_logic, _data, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _logic, _data, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
ThirdwebProxy__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1n);
};
ThirdwebProxy__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1n, signerOrProvider);
};
return ThirdwebProxy__factory;
}(ContractFactory);
ThirdwebProxy__factory.bytecode = _bytecode$C;
ThirdwebProxy__factory.abi = _abi$1n;
var _abi$1o = [{
inputs: [{
internalType: "string",
name: "_name",
type: "string"
}, {
internalType: "contract ERC20Votes",
name: "_token",
type: "address"
}, {
internalType: "uint256",
name: "_initialVotingDelay",
type: "uint256"
}, {
internalType: "uint256",
name: "_initialVotingPeriod",
type: "uint256"
}, {
internalType: "uint256",
name: "_initialProposalThreshold",
type: "uint256"
}, {
internalType: "uint256",
name: "_initialVoteQuorumFraction",
type: "uint256"
}, {
internalType: "address",
name: "_trustedForwarder",
type: "address"
}, {
internalType: "string",
name: "_uri",
type: "string"
}],
stateMutability: "nonpayable",
type: "constructor"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalCanceled",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "address",
name: "proposer",
type: "address"
}, {
indexed: false,
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
indexed: false,
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
indexed: false,
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
indexed: false,
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
indexed: false,
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "description",
type: "string"
}],
name: "ProposalCreated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "ProposalExecuted",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldProposalThreshold",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newProposalThreshold",
type: "uint256"
}],
name: "ProposalThresholdSet",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldQuorumNumerator",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newQuorumNumerator",
type: "uint256"
}],
name: "QuorumNumeratorUpdated",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: "address",
name: "voter",
type: "address"
}, {
indexed: false,
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
indexed: false,
internalType: "uint8",
name: "support",
type: "uint8"
}, {
indexed: false,
internalType: "uint256",
name: "weight",
type: "uint256"
}, {
indexed: false,
internalType: "string",
name: "reason",
type: "string"
}],
name: "VoteCast",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldVotingDelay",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newVotingDelay",
type: "uint256"
}],
name: "VotingDelaySet",
type: "event"
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: "uint256",
name: "oldVotingPeriod",
type: "uint256"
}, {
indexed: false,
internalType: "uint256",
name: "newVotingPeriod",
type: "uint256"
}],
name: "VotingPeriodSet",
type: "event"
}, {
inputs: [],
name: "BALLOT_TYPEHASH",
outputs: [{
internalType: "bytes32",
name: "",
type: "bytes32"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "COUNTING_MODE",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}],
name: "castVote",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "uint8",
name: "v",
type: "uint8"
}, {
internalType: "bytes32",
name: "r",
type: "bytes32"
}, {
internalType: "bytes32",
name: "s",
type: "bytes32"
}],
name: "castVoteBySig",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "uint8",
name: "support",
type: "uint8"
}, {
internalType: "string",
name: "reason",
type: "string"
}],
name: "castVoteWithReason",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "contractURI",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "execute",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "payable",
type: "function"
}, {
inputs: [],
name: "getAllProposals",
outputs: [{
components: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "proposer",
type: "address"
}, {
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "string[]",
name: "signatures",
type: "string[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
internalType: "string",
name: "description",
type: "string"
}],
internalType: "struct VotingGovernor.Proposal[]",
name: "allProposals",
type: "tuple[]"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "account",
type: "address"
}, {
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "getVotes",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "account",
type: "address"
}],
name: "hasVoted",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "bytes32",
name: "descriptionHash",
type: "bytes32"
}],
name: "hashProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "pure",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "indexForProposal",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "forwarder",
type: "address"
}],
name: "isTrustedForwarder",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "name",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "uint256[]",
name: "",
type: "uint256[]"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155BatchReceived",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC1155Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "address",
name: "",
type: "address"
}, {
internalType: "address",
name: "",
type: "address"
}, {
internalType: "uint256",
name: "",
type: "uint256"
}, {
internalType: "bytes",
name: "",
type: "bytes"
}],
name: "onERC721Received",
outputs: [{
internalType: "bytes4",
name: "",
type: "bytes4"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalDeadline",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalIndex",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalSnapshot",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "proposalThreshold",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "proposalVotes",
outputs: [{
internalType: "uint256",
name: "againstVotes",
type: "uint256"
}, {
internalType: "uint256",
name: "forVotes",
type: "uint256"
}, {
internalType: "uint256",
name: "abstainVotes",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
name: "proposals",
outputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}, {
internalType: "address",
name: "proposer",
type: "address"
}, {
internalType: "uint256",
name: "startBlock",
type: "uint256"
}, {
internalType: "uint256",
name: "endBlock",
type: "uint256"
}, {
internalType: "string",
name: "description",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "address[]",
name: "targets",
type: "address[]"
}, {
internalType: "uint256[]",
name: "values",
type: "uint256[]"
}, {
internalType: "bytes[]",
name: "calldatas",
type: "bytes[]"
}, {
internalType: "string",
name: "description",
type: "string"
}],
name: "propose",
outputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "blockNumber",
type: "uint256"
}],
name: "quorum",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "quorumDenominator",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "quorumNumerator",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "string",
name: "uri",
type: "string"
}],
name: "setContractURI",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newProposalThreshold",
type: "uint256"
}],
name: "setProposalThreshold",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newVotingDelay",
type: "uint256"
}],
name: "setVotingDelay",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newVotingPeriod",
type: "uint256"
}],
name: "setVotingPeriod",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "proposalId",
type: "uint256"
}],
name: "state",
outputs: [{
internalType: "enum IGovernor.ProposalState",
name: "",
type: "uint8"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}],
name: "supportsInterface",
outputs: [{
internalType: "bool",
name: "",
type: "bool"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "token",
outputs: [{
internalType: "contract ERC20Votes",
name: "",
type: "address"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [{
internalType: "uint256",
name: "newQuorumNumerator",
type: "uint256"
}],
name: "updateQuorumNumerator",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}, {
inputs: [],
name: "version",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingDelay",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
inputs: [],
name: "votingPeriod",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function"
}, {
stateMutability: "payable",
type: "receive"
}];
var _bytecode$D = "0x6101606040523480156200001257600080fd5b5060405162003d0838038062003d08833981016040819052620000359162000505565b8183888888888d806200005c6040805180820190915260018152603160f81b602082015290565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c052610120525050825162000102925060009150602084019062000379565b506200011090508362000186565b6200011b82620001c7565b62000126816200026e565b5050506001600160a01b0316610140526200014181620002af565b50600780546001600160a01b0319166001600160a01b039290921691909117905580516200017790600890602084019062000379565b50505050505050505062000600565b60025460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600255565b600081116200022d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60035460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600355565b60045460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600455565b6064811115620003345760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40162000224565b600680549082905560408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b8280546200038790620005c3565b90600052602060002090601f016020900481019282620003ab5760008555620003f6565b82601f10620003c657805160ff1916838001178555620003f6565b82800160010185558215620003f6579182015b82811115620003f6578251825591602001919060010190620003d9565b506200040492915062000408565b5090565b5b8082111562000404576000815560010162000409565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200044757600080fd5b81516001600160401b03808211156200046457620004646200041f565b604051601f8301601f19908116603f011681019082821181831017156200048f576200048f6200041f565b81604052838152602092508683858801011115620004ac57600080fd5b600091505b83821015620004d05785820183015181830184015290820190620004b1565b83821115620004e25760008385830101525b9695505050505050565b6001600160a01b03811681146200050257600080fd5b50565b600080600080600080600080610100898b0312156200052357600080fd5b88516001600160401b03808211156200053b57600080fd5b620005498c838d0162000435565b995060208b015191506200055d82620004ec565b81985060408b0151975060608b0151965060808b0151955060a08b0151945060c08b015191506200058e82620004ec565b60e08b015191935080821115620005a457600080fd5b50620005b38b828c0162000435565b9150509295985092959890939650565b600181811c90821680620005d857607f821691505b60208210811415620005fa57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516101405161369f620006696000396000818161082f0152818161168f015261178b015260006121ac015260006121fb015260006121d60152600061212f0152600061215901526000612183015261369f6000f3fe6080604052600436106102895760003560e01c80637b3c71d311610153578063cceb68f5116100cb578063eb9019d41161007f578063f23a6e6111610064578063f23a6e61146107d1578063f8ce560a146107fd578063fc0c546a1461081d57600080fd5b8063eb9019d414610791578063ece40cc1146107b157600080fd5b8063deaaa7cc116100b0578063deaaa7cc14610728578063e8a3d4851461075c578063ea0217cf1461077157600080fd5b8063cceb68f5146106c0578063dd4e2ba5146106e257600080fd5b8063a7713a7011610122578063bc197c8111610107578063bc197c8114610654578063c01f9e3714610680578063c59057e4146106a057600080fd5b8063a7713a701461062a578063b58131b01461063f57600080fd5b80637b3c71d3146105b65780637d5e81e2146105d6578063938e3d7b146105f657806397c3d3341461061657600080fd5b80633bccf4fd1161020157806356781388116101b55780635977e0f21161019a5780635977e0f21461055357806370b0f660146105695780637910d4821461058957600080fd5b80635678138814610504578063572b6c051461052457600080fd5b806343859632116101e6578063438596321461043b578063544ffc9c1461048557806354fd4d50146104da57600080fd5b80633bccf4fd146103ee5780633e4f49e61461040e57600080fd5b806306fdde03116102585780632656227d1161023d5780632656227d146103a65780632d63f693146103b95780633932abb1146103d957600080fd5b806306fdde0314610340578063150b7a021461036257600080fd5b8063013cf08b1461029757806301ffc9a7146102d157806302a251a31461030157806306f3f9e61461032057600080fd5b3661029257005b005b600080fd5b3480156102a357600080fd5b506102b76102b23660046129e4565b610869565b6040516102c8959493929190612a59565b60405180910390f35b3480156102dd57600080fd5b506102f16102ec366004612a8d565b61092c565b60405190151581526020016102c8565b34801561030d57600080fd5b506003545b6040519081526020016102c8565b34801561032c57600080fd5b5061029061033b3660046129e4565b610972565b34801561034c57600080fd5b506103556109dd565b6040516102c89190612ab7565b34801561036e57600080fd5b5061038d61037d366004612ba5565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016102c8565b6103126103b4366004612d7e565b610a6f565b3480156103c557600080fd5b506103126103d43660046129e4565b610b7c565b3480156103e557600080fd5b50600254610312565b3480156103fa57600080fd5b50610312610409366004612e1f565b610bb5565b34801561041a57600080fd5b5061042e6104293660046129e4565b610c49565b6040516102c89190612e83565b34801561044757600080fd5b506102f1610456366004612eab565b60008281526005602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561049157600080fd5b506104bf6104a03660046129e4565b6000908152600560205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016102c8565b3480156104e657600080fd5b506040805180820190915260018152603160f81b6020820152610355565b34801561051057600080fd5b5061031261051f366004612ed7565b610db1565b34801561053057600080fd5b506102f161053f366004612efa565b6007546001600160a01b0391821691161490565b34801561055f57600080fd5b5061031260095481565b34801561057557600080fd5b506102906105843660046129e4565b610de1565b34801561059557600080fd5b506103126105a43660046129e4565b600b6020526000908152604090205481565b3480156105c257600080fd5b506103126105d1366004612f5e565b610e44565b3480156105e257600080fd5b506103126105f1366004612fb8565b610e9d565b34801561060257600080fd5b5061029061061136600461306d565b611067565b34801561062257600080fd5b506064610312565b34801561063657600080fd5b50600654610312565b34801561064b57600080fd5b506103126110d2565b34801561066057600080fd5b5061038d61066f3660046130af565b63bc197c8160e01b95945050505050565b34801561068c57600080fd5b5061031261069b3660046129e4565b6110e2565b3480156106ac57600080fd5b506103126106bb366004612d7e565b611112565b3480156106cc57600080fd5b506106d561114c565b6040516102c8919061326a565b3480156106ee57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e90820152610355565b34801561073457600080fd5b506103127f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561076857600080fd5b50610355611575565b34801561077d57600080fd5b5061029061078c3660046129e4565b611603565b34801561079d57600080fd5b506103126107ac36600461337a565b611666565b3480156107bd57600080fd5b506102906107cc3660046129e4565b61170b565b3480156107dd57600080fd5b5061038d6107ec3660046133a4565b63f23a6e6160e01b95945050505050565b34801561080957600080fd5b506103126108183660046129e4565b61176e565b34801561082957600080fd5b506108517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c8565b600a602052600090815260409020805460018201546006830154600784015460088501805494956001600160a01b0390941694929391926108a990613409565b80601f01602080910402602001604051908101604052809291908181526020018280546108d590613409565b80156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050505050905085565b60006001600160e01b03198216630271189760e51b148061095d57506001600160e01b03198216630a85bd0160e11b145b8061096c575061096c82611821565b92915050565b3061097b611846565b6001600160a01b0316146109d15760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b60448201526064015b60405180910390fd5b6109da81611850565b50565b6060600080546109ec90613409565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1890613409565b8015610a655780601f10610a3a57610100808354040283529160200191610a65565b820191906000526020600020905b815481529060010190602001808311610a4857829003601f168201915b5050505050905090565b600080610a7e86868686611112565b90506000610a8b82610c49565b90506004816007811115610aa157610aa1612e6d565b1480610abe57506005816007811115610abc57610abc612e6d565b145b610b145760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016109c8565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610b728288888888611918565b5095945050505050565b600081815260016020908152604080832081519283019091525467ffffffffffffffff16908190525b67ffffffffffffffff1692915050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610c2190610c199060800160405160208183030381529060405280519060200120611a17565b868686611a65565b9050610c3e87828860405180602001604052806000815250611a83565b979650505050505050565b6000818152600160208181526040808420815160a081018352815467ffffffffffffffff90811660808301908152825283518086018552958301541685529283019390935260029092015460ff80821615801594840194909452610100909104161515606082015290610cbf5750600792915050565b806060015115610cd25750600292915050565b805151439067ffffffffffffffff1610610cef5750600092915050565b43610cfc82602001515190565b67ffffffffffffffff1610610d145750600192915050565b610d218160200151611b8f565b15610d6357610d2f83611bc0565b8015610d4e575060008381526005602052604090208054600190910154115b610d59576003610d5c565b60045b9392505050565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016109c8565b50919050565b600080610dbc611846565b9050610dd984828560405180602001604052806000815250611a83565b949350505050565b30610dea611846565b6001600160a01b031614610e3b5760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b60448201526064016109c8565b6109da81611bf7565b600080610e4f611846565b9050610e9386828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a8392505050565b9695505050505050565b6000610eab85858585611c38565b9050604051806101200160405280828152602001610ec7611846565b6001600160a01b03168152602001868152602001858152602001865167ffffffffffffffff811115610efb57610efb612ae6565b604051908082528060200260200182016040528015610f2e57816020015b6060815260200190600190039081610f195790505b508152602001848152602001610f4383610b7c565b8152602001610f51836110e2565b815260209081018490526009546000908152600a8252604090819020835181558383015160018201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790559083015180519192610fbd92600285019290910190612719565b5060608201518051610fd9916003840191602090910190612787565b5060808201518051610ff59160048401916020909101906127c2565b5060a0820151805161101191600584019160209091019061281b565b5060c0820151600682015560e082015160078201556101008201518051611042916008840191602090910190612874565b509050506001600960008282546110599190613454565b909155509095945050505050565b30611070611846565b6001600160a01b0316146110c15760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b60448201526064016109c8565b6110cd600883836128e7565b505050565b60006110dd60045490565b905090565b600081815260016020818152604080842081519283019091529091015467ffffffffffffffff1690819052610ba5565b60008484848460405160200161112b949392919061346c565b60408051601f19818403018152919052805160209091012095945050505050565b6009546060908067ffffffffffffffff81111561116b5761116b612ae6565b6040519080825280602002602001820160405280156111f457816020015b6111e16040518061012001604052806000815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001606081525090565b8152602001906001900390816111895790505b50915060005b81811015611570576000818152600a60209081526040918290208251610120810184528154815260018201546001600160a01b0316818401526002820180548551818602810186018752818152929593949386019383018282801561128857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161126a575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156112e057602002820191906000526020600020905b8154815260200190600101908083116112cc575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156113ba57838290600052602060002001805461132d90613409565b80601f016020809104026020016040519081016040528092919081815260200182805461135990613409565b80156113a65780601f1061137b576101008083540402835291602001916113a6565b820191906000526020600020905b81548152906001019060200180831161138957829003601f168201915b50505050508152602001906001019061130e565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561149357838290600052602060002001805461140690613409565b80601f016020809104026020016040519081016040528092919081815260200182805461143290613409565b801561147f5780601f106114545761010080835404028352916020019161147f565b820191906000526020600020905b81548152906001019060200180831161146257829003601f168201915b5050505050815260200190600101906113e7565b50505050815260200160068201548152602001600782015481526020016008820180546114bf90613409565b80601f01602080910402602001604051908101604052809291908181526020018280546114eb90613409565b80156115385780601f1061150d57610100808354040283529160200191611538565b820191906000526020600020905b81548152906001019060200180831161151b57829003601f168201915b505050505081525050838281518110611553576115536134b7565b6020908102919091010152611569600182613454565b90506111fa565b505090565b6008805461158290613409565b80601f01602080910402602001604051908101604052809291908181526020018280546115ae90613409565b80156115fb5780601f106115d0576101008083540402835291602001916115fb565b820191906000526020600020905b8154815290600101906020018083116115de57829003601f168201915b505050505081565b3061160c611846565b6001600160a01b03161461165d5760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b60448201526064016109c8565b6109da81611f94565b604051630748d63560e31b81526001600160a01b038381166004830152602482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a89060440160206040518083038186803b1580156116d357600080fd5b505afa1580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906134cd565b30611714611846565b6001600160a01b0316146117655760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b60448201526064016109c8565b6109da8161204b565b60006064600654604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c9060240160206040518083038186803b1580156117d557600080fd5b505afa1580156117e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180d91906134cd565b61181791906134e6565b61096c9190613505565b60006001600160e01b03198216630271189760e51b148061096c575061096c8261208c565b60006110dd6120c1565b60648111156118d35760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4016109c8565b600680549082905560408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b600060405180606001604052806027815260200161366c60279139905060005b8551811015611a0e57600080878381518110611956576119566134b7565b60200260200101516001600160a01b0316878481518110611979576119796134b7565b6020026020010151878581518110611993576119936134b7565b60200260200101516040516119a89190613527565b60006040518083038185875af1925050503d80600081146119e5576040519150601f19603f3d011682016040523d82523d6000602084013e6119ea565b606091505b50915091506119fa8282866120e9565b50505080611a0790613543565b9050611938565b50505050505050565b600061096c611a24612122565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611a7687878787612249565b91509150610b7281612336565b6000848152600160208190526040822090611a9d87610c49565b6007811115611aae57611aae612e6d565b14611b075760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016109c8565b6040805160208101909152815467ffffffffffffffff1690819052600090611b30908790611666565b9050611b3e878787846124f1565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda488878488604051611b7d949392919061355e565b60405180910390a29695505050505050565b6000611ba5825167ffffffffffffffff16151590565b801561096c575050514367ffffffffffffffff909116111590565b600081815260056020526040812060028101546001820154611be29190613454565b611bee61081885610b7c565b11159392505050565b60025460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600255565b6000611c426110d2565b611c51336107ac600143613586565b1015611cd15760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a2070726f7060448201527f6f73657220766f7465732062656c6f772070726f706f73616c207468726573686064820152621bdb1960ea1b608482015260a4016109c8565b6000611ce68686868680519060200120611112565b90508451865114611d435760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746044820152600d60fb1b60648201526084016109c8565b8351865114611d9e5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746044820152600d60fb1b60648201526084016109c8565b6000865111611def5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016109c8565b6000818152600160209081526040918290208251918201909252815467ffffffffffffffff169081905215611e705760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016109c8565b6000611e83611e7e60025490565b612695565b611e8c43612695565b611e96919061359d565b90506000611ea6611e7e60035490565b611eb0908361359d565b835467ffffffffffffffff191667ffffffffffffffff8416178455905060018301805467ffffffffffffffff191667ffffffffffffffff83161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084611f16611846565b8b8b8d5167ffffffffffffffff811115611f3257611f32612ae6565b604051908082528060200260200182016040528015611f6557816020015b6060815260200190600190039081611f505790505b508c88888e604051611f7f999897969594939291906135c9565b60405180910390a15091979650505050505050565b6000811161200a5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f642060448201527f746f6f206c6f770000000000000000000000000000000000000000000000000060648201526084016109c8565b60035460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600355565b60045460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600455565b60006001600160e01b0319821663bf26d89760e01b148061096c57506301ffc9a760e01b6001600160e01b031983161461096c565b6007546000906001600160a01b03163314156120e4575060131936013560601c90565b503390565b606083156120f8575081610d5c565b8251156121085782518084602001fd5b8160405162461bcd60e51b81526004016109c89190612ab7565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561217b57507f000000000000000000000000000000000000000000000000000000000000000046145b156121a557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612280575060009050600361232d565b8460ff16601b1415801561229857508460ff16601c14155b156122a9575060009050600461232d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156122fd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123265760006001925092505061232d565b9150600090505b94509492505050565b600081600481111561234a5761234a612e6d565b14156123535750565b600181600481111561236757612367612e6d565b14156123b55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109c8565b60028160048111156123c9576123c9612e6d565b14156124175760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109c8565b600381600481111561242b5761242b612e6d565b14156124845760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109c8565b600481600481111561249857612498612e6d565b14156109da5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016109c8565b60008481526005602090815260408083206001600160a01b0387168452600381019092529091205460ff161561258f5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c72656160448201527f647920636173740000000000000000000000000000000000000000000000000060648201526084016109c8565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff1614156125e057818160000160008282546125d59190613454565b9091555061268e9050565b60ff83166001141561260057818160010160008282546125d59190613454565b60ff83166002141561262057818160020160008282546125d59190613454565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c696420766160448201527f6c756520666f7220656e756d20566f746554797065000000000000000000000060648201526084016109c8565b5050505050565b600067ffffffffffffffff8211156127155760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016109c8565b5090565b82805482825590600052602060002090810192821561277b579160200282015b8281111561277b578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190612739565b5061271592915061295b565b82805482825590600052602060002090810192821561277b579160200282015b8281111561277b5782518255916020019190600101906127a7565b82805482825590600052602060002090810192821561280f579160200282015b8281111561280f57825180516127ff918491602090910190612874565b50916020019190600101906127e2565b50612715929150612970565b828054828255906000526020600020908101928215612868579160200282015b828111156128685782518051612858918491602090910190612874565b509160200191906001019061283b565b5061271592915061298d565b82805461288090613409565b90600052602060002090601f0160209004810192826128a2576000855561277b565b82601f106128bb57805160ff191683800117855561277b565b8280016001018555821561277b579182018281111561277b5782518255916020019190600101906127a7565b8280546128f390613409565b90600052602060002090601f016020900481019282612915576000855561277b565b82601f1061292e5782800160ff1982351617855561277b565b8280016001018555821561277b579182015b8281111561277b578235825591602001919060010190612940565b5b80821115612715576000815560010161295c565b8082111561271557600061298482826129aa565b50600101612970565b808211156127155760006129a182826129aa565b5060010161298d565b5080546129b690613409565b6000825580601f106129c6575050565b601f0160209004906000526020600020908101906109da919061295b565b6000602082840312156129f657600080fd5b5035919050565b60005b83811015612a18578181015183820152602001612a00565b83811115612a27576000848401525b50505050565b60008151808452612a458160208601602086016129fd565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015283604082015282606082015260a060808201526000610c3e60a0830184612a2d565b600060208284031215612a9f57600080fd5b81356001600160e01b031981168114610d5c57600080fd5b602081526000610d5c6020830184612a2d565b80356001600160a01b0381168114612ae157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b2557612b25612ae6565b604052919050565b600067ffffffffffffffff831115612b4757612b47612ae6565b612b5a601f8401601f1916602001612afc565b9050828152838383011115612b6e57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612b9657600080fd5b610d5c83833560208501612b2d565b60008060008060808587031215612bbb57600080fd5b612bc485612aca565b9350612bd260208601612aca565b925060408501359150606085013567ffffffffffffffff811115612bf557600080fd5b612c0187828801612b85565b91505092959194509250565b600067ffffffffffffffff821115612c2757612c27612ae6565b5060051b60200190565b600082601f830112612c4257600080fd5b81356020612c57612c5283612c0d565b612afc565b82815260059290921b84018101918181019086841115612c7657600080fd5b8286015b84811015612c9857612c8b81612aca565b8352918301918301612c7a565b509695505050505050565b600082601f830112612cb457600080fd5b81356020612cc4612c5283612c0d565b82815260059290921b84018101918181019086841115612ce357600080fd5b8286015b84811015612c985780358352918301918301612ce7565b600082601f830112612d0f57600080fd5b81356020612d1f612c5283612c0d565b82815260059290921b84018101918181019086841115612d3e57600080fd5b8286015b84811015612c9857803567ffffffffffffffff811115612d625760008081fd5b612d708986838b0101612b85565b845250918301918301612d42565b60008060008060808587031215612d9457600080fd5b843567ffffffffffffffff80821115612dac57600080fd5b612db888838901612c31565b95506020870135915080821115612dce57600080fd5b612dda88838901612ca3565b94506040870135915080821115612df057600080fd5b50612dfd87828801612cfe565b949793965093946060013593505050565b803560ff81168114612ae157600080fd5b600080600080600060a08688031215612e3757600080fd5b85359450612e4760208701612e0e565b9350612e5560408701612e0e565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612ea557634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612ebe57600080fd5b82359150612ece60208401612aca565b90509250929050565b60008060408385031215612eea57600080fd5b82359150612ece60208401612e0e565b600060208284031215612f0c57600080fd5b610d5c82612aca565b60008083601f840112612f2757600080fd5b50813567ffffffffffffffff811115612f3f57600080fd5b602083019150836020828501011115612f5757600080fd5b9250929050565b60008060008060608587031215612f7457600080fd5b84359350612f8460208601612e0e565b9250604085013567ffffffffffffffff811115612fa057600080fd5b612fac87828801612f15565b95989497509550505050565b60008060008060808587031215612fce57600080fd5b843567ffffffffffffffff80821115612fe657600080fd5b612ff288838901612c31565b9550602087013591508082111561300857600080fd5b61301488838901612ca3565b9450604087013591508082111561302a57600080fd5b61303688838901612cfe565b9350606087013591508082111561304c57600080fd5b508501601f8101871361305e57600080fd5b612c0187823560208401612b2d565b6000806020838503121561308057600080fd5b823567ffffffffffffffff81111561309757600080fd5b6130a385828601612f15565b90969095509350505050565b600080600080600060a086880312156130c757600080fd5b6130d086612aca565b94506130de60208701612aca565b9350604086013567ffffffffffffffff808211156130fb57600080fd5b61310789838a01612ca3565b9450606088013591508082111561311d57600080fd5b61312989838a01612ca3565b9350608088013591508082111561313f57600080fd5b5061314c88828901612b85565b9150509295509295909350565b600081518084526020808501945080840160005b838110156131925781516001600160a01b03168752958201959082019060010161316d565b509495945050505050565b600081518084526020808501945080840160005b83811015613192578151875295820195908201906001016131b1565b600082825180855260208086019550808260051b84010181860160005b8481101561321857601f19868403018952613206838351612a2d565b988401989250908301906001016131ea565b5090979650505050505050565b6000815180845260208085019450848260051b860182860160005b85811015613218578383038952613258838351612a2d565b98850198925090840190600101613240565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561336c57603f19898403018552815180518452878101516001600160a01b03168885015286810151610120888601819052906132d382870182613159565b915050606080830151868303828801526132ed838261319d565b925050506080808301518683038288015261330883826131cd565b9250505060a080830151868303828801526133238382613225565b9250505060c080830151818701525060e080830151818701525061010080830151925085820381870152506133588183612a2d565b968901969450505090860190600101613291565b509098975050505050505050565b6000806040838503121561338d57600080fd5b61339683612aca565b946020939093013593505050565b600080600080600060a086880312156133bc57600080fd5b6133c586612aca565b94506133d360208701612aca565b93506040860135925060608601359150608086013567ffffffffffffffff8111156133fd57600080fd5b61314c88828901612b85565b600181811c9082168061341d57607f821691505b60208210811415610dab57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156134675761346761343e565b500190565b60808152600061347f6080830187613159565b8281036020840152613491818761319d565b905082810360408401526134a58186613225565b91505082606083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134df57600080fd5b5051919050565b60008160001904831182151516156135005761350061343e565b500290565b60008261352257634e487b7160e01b600052601260045260246000fd5b500490565b600082516135398184602087016129fd565b9190910192915050565b60006000198214156135575761355761343e565b5060010190565b84815260ff84166020820152826040820152608060608201526000610e936080830184612a2d565b6000828210156135985761359861343e565b500390565b600067ffffffffffffffff8083168185168083038211156135c0576135c061343e565b01949350505050565b60006101208b83526001600160a01b038b1660208401528060408401526135f28184018b613159565b90508281036060840152613606818a61319d565b9050828103608084015261361a81896131cd565b905082810360a084015261362e8188613225565b67ffffffffffffffff87811660c0860152861660e0850152838103610100850152905061365b8185612a2d565b9c9b50505050505050505050505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a164736f6c6343000809000a";
var isSuperArgs$D = function isSuperArgs(xs) {
return xs.length > 1;
};
var VotingGovernor__factory = /*#__PURE__*/function (_ContractFactory) {
_inheritsLoose(VotingGovernor__factory, _ContractFactory);
function VotingGovernor__factory() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (isSuperArgs$D(args)) {
_this = _ContractFactory.call.apply(_ContractFactory, [this].concat(args)) || this;
} else {
_this = _ContractFactory.call(this, _abi$1o, _bytecode$D, args[0]) || this;
}
return _assertThisInitialized(_this);
}
var _proto = VotingGovernor__factory.prototype;
_proto.deploy = function deploy(_name, _token, _initialVotingDelay, _initialVotingPeriod, _initialProposalThreshold, _initialVoteQuorumFraction, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.deploy.call(this, _name, _token, _initialVotingDelay, _initialVotingPeriod, _initialProposalThreshold, _initialVoteQuorumFraction, _trustedForwarder, _uri, overrides || {});
};
_proto.getDeployTransaction = function getDeployTransaction(_name, _token, _initialVotingDelay, _initialVotingPeriod, _initialProposalThreshold, _initialVoteQuorumFraction, _trustedForwarder, _uri, overrides) {
return _ContractFactory.prototype.getDeployTransaction.call(this, _name, _token, _initialVotingDelay, _initialVotingPeriod, _initialProposalThreshold, _initialVoteQuorumFraction, _trustedForwarder, _uri, overrides || {});
};
_proto.attach = function attach(address) {
return _ContractFactory.prototype.attach.call(this, address);
};
_proto.connect = function connect(signer) {
return _ContractFactory.prototype.connect.call(this, signer);
};
VotingGovernor__factory.createInterface = function createInterface() {
return new utils.Interface(_abi$1o);
};
VotingGovernor__factory.connect = function connect(address, signerOrProvider) {
return new Contract(address, _abi$1o, signerOrProvider);
};
return VotingGovernor__factory;
}(ContractFactory);
VotingGovernor__factory.bytecode = _bytecode$D;
VotingGovernor__factory.abi = _abi$1o;
export { AccessControlEnumerable__factory, AccessControl__factory, AccessNFT__factory, Coin__factory, ControlDeployer__factory, DataStore__factory, ERC1155Burnable__factory, ERC1155Holder__factory, ERC1155Pausable__factory, ERC1155PresetMinterPauserSupplyHolder__factory, ERC1155PresetMinterPauser__factory, ERC1155Receiver__factory, ERC1155__factory, ERC165__factory, ERC20Burnable__factory, ERC20Pausable__factory, ERC20Permit__factory, ERC20PresetMinterPauser__factory, ERC20Votes__factory, ERC20__factory, ERC2771Context__factory, ERC721Burnable__factory, ERC721Enumerable__factory, ERC721Holder__factory, ERC721Pausable__factory, ERC721PresetMinterPauserAutoId__factory, ERC721__factory, Forwarder__factory, GovernorCountingSimple__factory, GovernorSettings__factory, GovernorVotesQuorumFraction__factory, GovernorVotes__factory, Governor__factory, IAccessControlEnumerable__factory, IAccessControl__factory, IControlDeployer__factory, IERC1155MetadataURI__factory, IERC1155Receiver__factory, IERC1155__factory, IERC165__factory, IERC20Metadata__factory, IERC20Permit__factory, IERC20Upgradeable__factory, IERC20__factory, IERC2981__factory, IERC721Enumerable__factory, IERC721Metadata__factory, IERC721Receiver__factory, IERC721__factory, IGovernor__factory, ILazyMintERC1155__factory, ILazyMintERC20__factory, ILazyMintERC721__factory, IMarketplace__factory, ISignatureMint1155__factory, ISignatureMint721__factory, IWETH__factory, LazyMintERC1155__factory, LazyMintERC20__factory, LazyMintERC721__factory, LazyNFT__factory, LinkTokenInterface__factory, Market__factory, Marketplace__factory, MintableERC20Permit__factory, MockERC1155Royalty__factory, MockERC1155__factory, MockLazyNFTReentrant__factory, MockRoyaltyNoFees__factory, MockRoyaltyReentrantDistribute__factory, Multicall__factory, NFTCollection__factory, NFT__factory, Ownable__factory, Pack__factory, Pausable__factory, PaymentSplitterUpgradeable__factory, PaymentSplitter__factory, ProtocolControl__factory, Proxy__factory, Registry__factory, Royalty__factory, SignatureMint1155__factory, SignatureMint721__factory, Splits__factory, ThirdwebProxy__factory, VRFConsumerBase__factory, VotingGovernor__factory, WETH9__factory };
//# sourceMappingURL=contracts.esm.js.map