mirror of
https://github.com/0glabs/0g-storage-node.git
synced 2025-01-13 00:25:18 +00:00
1171 lines
86 KiB
JSON
1171 lines
86 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "PoraMine",
|
|
"sourceName": "contracts/miner/Mine.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "settings",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "beneficiary",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "NewMinerId",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "epoch",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "epochIndex",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "recallPosition",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "NewSubmission",
|
|
"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": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "UpdateMinerId",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "PARAMS_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "contextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "nonce",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "startPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardId",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardMask",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"internalType": "struct RecallRange",
|
|
"name": "range",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recallPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "sealOffset",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sealedContextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32[128]",
|
|
"name": "sealedData",
|
|
"type": "bytes32[128]"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "merkleProof",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"internalType": "struct MineLib.PoraAnswer",
|
|
"name": "answer",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "epoch",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineStart",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "flowRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "flowLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "digest",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"internalType": "struct MineContext",
|
|
"name": "context",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "basicCheck",
|
|
"outputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "beneficiaries",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "canSubmit",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "computeWorkerContext",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "epoch",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineStart",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "flowRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "flowLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "digest",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"internalType": "struct MineContext",
|
|
"name": "context",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "poraTarget",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "subtaskDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "maxShards",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"internalType": "struct WorkerContext",
|
|
"name": "answer",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "currentSubmissions",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "dataProofEnabled",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "difficultyAdjustRatio",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "fixedDifficulty",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "flow",
|
|
"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": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "epoch",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineStart",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "flowRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "flowLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "digest",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"internalType": "struct MineContext",
|
|
"name": "context",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "getSubtaskDigest",
|
|
"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": "uint256",
|
|
"name": "difficulty",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "flow_",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "reward_",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "initialize",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "initialized",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "lastMinedEpoch",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "maxShards",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "minDifficulty",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "nSubtasks",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "contextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "nonce",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "startPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardId",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardMask",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"internalType": "struct RecallRange",
|
|
"name": "range",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recallPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "sealOffset",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sealedContextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32[128]",
|
|
"name": "sealedData",
|
|
"type": "bytes32[128]"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "merkleProof",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"internalType": "struct MineLib.PoraAnswer",
|
|
"name": "answer",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "subtaskDigest",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "pora",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "poraTarget",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "poraVersion",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"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": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "beneficiary",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "seed",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"name": "requestMinerId",
|
|
"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": "reward",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "sealDataEnabled",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "difficultyAdjustRatio_",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setDifficultyAdjustRatio",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "maxShards_",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"name": "setMaxShards",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "minDifficulty_",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setMinDifficulty",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nSubtasks_",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setNumSubtasks",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "targetMineBlocks_",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setTargetMineBlocks",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "targetSubmissions_",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setTargetSubmissions",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "contextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "nonce",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "startPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "mineLength",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardId",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "shardMask",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"internalType": "struct RecallRange",
|
|
"name": "range",
|
|
"type": "tuple"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recallPosition",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "sealOffset",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sealedContextDigest",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32[128]",
|
|
"name": "sealedData",
|
|
"type": "bytes32[128]"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "merkleProof",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"internalType": "struct MineLib.PoraAnswer",
|
|
"name": "answer",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "submit",
|
|
"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": "targetMineBlocks",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "targetSubmissions",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "targetSubmissionsNextEpoch",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "minerId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "transferBeneficial",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x60e06040523480156200001157600080fd5b5060405162003bfd38038062003bfd833981016040819052620000349162000052565b6001811615608052600281161560a052600416151560c0526200006c565b6000602082840312156200006557600080fd5b5051919050565b60805160a05160c051613b45620000b8600039600081816104c301528181611abc0152612e710152600081816104f3015261169501526000818161058001526116580152613b456000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80637bba7d6111610151578063ae722e82116100c3578063b776a51211610087578063b776a512146105f9578063ca15c87314610602578063d547741f14610615578063dddc61a814610628578063e282e27b14610631578063ffbc9bd01461063857600080fd5b8063ae722e82146105a2578063b0628ee0146105b5578063b15d20da146105c8578063b4988fd0146105dd578063b4a93283146105f057600080fd5b806391d148541161011557806391d148541461053b5780639dc787a21461054e578063a217fddf14610557578063a82791821461055f578063ad08fdfb14610568578063adaa7a0f1461057b57600080fd5b80637bba7d61146104be5780637eca5688146104e557806382975fe7146104ee5780638c0bca06146105155780639010d07c1461052857600080fd5b80632f2ff15d116101ea57806339cd53ee116101ae57806339cd53ee146104405780633baebb751461046957806348f614411461047c5780635bdca85514610485578063704d3c961461049857806378203ab6146104ab57600080fd5b80632f2ff15d146103f557806331223ba714610408578063331f3b9c14610411578063343aad821461041a57806336568abe1461042d57600080fd5b806316a4be6f1161023157806316a4be6f146102de578063228cb73314610309578063248a9ca314610334578063296beba7146103665780632a02573b146103e257600080fd5b806301ffc9a71461026e578063047c13f5146102965780630c655e1f146102ab578063158ef93e146102be5780631600c624146102cb575b600080fd5b61028161027c36600461329b565b610640565b60405190151581526020015b60405180910390f35b6102a96102a43660046132f3565b61066b565b005b6102a96102b9366004613326565b610787565b6000546102819060ff1681565b6102a96102d9366004613326565b6108e2565b600a546102f1906001600160401b031681565b6040516001600160401b03909116815260200161028d565b60045461031c906001600160a01b031681565b6040516001600160a01b03909116815260200161028d565b610358610342366004613326565b6000908152600160208190526040909120015490565b60405190815260200161028d565b610379610374366004613326565b610952565b60408051825180518252602080820151818401528184015183850152606080830151818501526080808401519085015260a0928301519284019290925284015160c08301529183015160e08201529101516001600160401b03166101008201526101200161028d565b6102a96103f036600461333f565b610bcf565b6102a961040336600461335a565b610cd5565b610358600b5481565b61035860065481565b60035461031c906001600160a01b031681565b6102a961043b36600461335a565b610d00565b61031c61044e366004613326565b600e602052600090815260409020546001600160a01b031681565b6102a961047736600461365c565b610d7e565b610358600d5481565b6102a9610493366004613326565b611020565b6102a96104a6366004613326565b61104d565b6103586104b93660046136a1565b6110bb565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b61035860085481565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b6103586105233660046136cc565b611208565b61031c610536366004613710565b611408565b61028161054936600461335a565b611427565b61035860105481565b610358600081565b610358600c5481565b6102a9610576366004613326565b611452565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b6102a96105b0366004613732565b61148c565b6102a96105c336600461376e565b611957565b610358600080516020613af083398151915281565b6102a96105eb366004613798565b611a17565b610358600f5481565b61035860075481565b610358610610366004613326565b611b43565b6102a961062336600461335a565b611b5a565b61035860095481565b60016102f1565b610281611b80565b60006001600160e01b03198216635a05180f60e01b1480610665575061066582611c26565b92915050565b60006106786001436137ea565b60408051914060208301526bffffffffffffffffffffffff193360601b16908201526001600160c01b031960c084901b166054820152605c0160408051601f1981840301815291815281516020928301206000818152600e9093529120549091506001600160a01b03161561072d5760405162461bcd60e51b8152602060048201526016602482015275135a5b995c9259081a185cc81c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b6000818152600e602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917fbfeb006f16aca8eb3d9953cf44db6b11b6f3041a313875dfa18f2e9d71bd309e9190a3505050565b600080516020613af083398151915261079f81611c5b565b600082116107f95760405162461bcd60e51b815260206004820152602160248201527f4e756d626572206f66207375627461736b732063616e6e6f74206265207a65726044820152606f60f81b6064820152608401610724565b600360009054906101000a90046001600160a01b03166001600160a01b031663f06820546040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087091906137fd565b82106108dc5760405162461bcd60e51b815260206004820152603560248201527f4e756d626572206f66207375627461736b73206d757374206265206c657373206044820152740e8d0c2dc40c4d8dec6d6e640e0cae440cae0dec6d605b1b6064820152608401610724565b50601055565b600080516020613af08339815191526108fa81611c5b565b61010082111561094c5760405162461bcd60e51b815260206004820152601d60248201527f746172676574206d696e6520626c6f636b206d757374203c3d203235360000006044820152606401610724565b50600655565b604080516101408101825260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290528252602082018190529181018290526060810191909152816109e85760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b6044820152606401610724565b6000828152600e60205260409020546001600160a01b031680610a4d5760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f74207265676973746572656400000000006044820152606401610724565b600a546001600160401b0316606083015260035460408051635a325a9f60e11b815290516001600160a01b039092169163b464b53e9160048082019260c09290919082900301816000875af1158015610aaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ace9190613816565b80835260105460a09091015160405160009291610af8918790602001918252602082015260400190565b6040516020818303038152906040528051906020012060001c610b1b91906138a5565b9050600081846000015160200151610b3391906138b9565b90508043111580610b4e5750600654610b4c82436137ea565b115b15610b5b57505050919050565b835160a001516040805160208082019390935283408183015281518082038301815260609091018252805192019190912090850152600b548451511115610ba7578351610ba790611c68565b600754610bb59060026138cc565b600c541015610bc757600d5460208501525b505050919050565b600080516020613af0833981519152610be781611c5b565b6000826001600160401b031611610c405760405162461bcd60e51b815260206004820152601f60248201527f4d6178207368617264206e756d6265722063616e6e6f74206265207a65726f006044820152606401610724565b610c4b6001836138eb565b82166001600160401b0316600014610cb15760405162461bcd60e51b815260206004820152602360248201527f4d6178207368617264206e756d626572206d75737420626520706f776572206f60448201526233101960e91b6064820152608401610724565b50600a805467ffffffffffffffff19166001600160401b0392909216919091179055565b60008281526001602081905260409091200154610cf181611c5b565b610cfb8383611cf8565b505050565b6001600160a01b0381163314610d705760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610724565b610d7a8282611d1a565b5050565b815160a082015114610dd25760405162461bcd60e51b815260206004820152601a60248201527f496e636f6e73697374656e74206d696e696e67206469676573740000000000006044820152606401610724565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708160a0015103610e455760405162461bcd60e51b815260206004820152601960248201527f456d707479206469676573742063616e206e6f74206d696e65000000000000006044820152606401610724565b600754610e539060026138cc565b600c5410610ea35760405162461bcd60e51b815260206004820152601c60248201527f45706f63682068617320656e6f756768207375626d697373696f6e73000000006044820152606401610724565b6000610100610eb4610400826138cc565b610ebe919061390b565b610100610ecd610400826138cc565b610ed7919061390b565b8360600151610ee6919061390b565b610ef091906138cc565b6060840151909150610f029082611d3c565b60035460c0840151604051630fab20e160e31b815260048101919091526000916001600160a01b031690637d590708906024016040805180830381865afa158015610f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f759190613936565b90506000610100610f8961040060046138cc565b610f93919061390b565b8560800151610fa291906138b9565b90508082600001516001600160801b0316108015610fcd57508082602001516001600160801b031610155b6110195760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207365616c656420636f6e74657874206469676573740000006044820152606401610724565b5050505050565b600080516020613af083398151915261103881611c5b565b6008829055600b54600003610d7a5750600755565b600080516020613af083398151915261106581611c5b565b600082116110b55760405162461bcd60e51b815260206004820152601d60248201527f41646a75737420726174696f206d757374206265206e6f6e2d7a65726f0000006044820152606401610724565b50600955565b6000806010548460a00151846040516020016110e1929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c61110491906138a5565b9050600081856020015161111891906138b9565b905080431161117c5760405162461bcd60e51b815260206004820152602a60248201527f4561726c696572207468616e206578706563746564207375627461736b20737460448201526930b93a10313637b1b59760b11b6064820152608401610724565b60065461118982436137ea565b11156111ce5760405162461bcd60e51b8152602060048201526014602482015273135a5b9948191958591b1a5b9948195e18d9595960621b6044820152606401610724565b60a0850151604080516020810192909252824090820152606001604051602081830303815290604052805190602001209250505092915050565b604082015160009061125c5760405162461bcd60e51b815260206004820152601860248201527f4d696e65722049442063616e6e6f7420626520656d70747900000000000000006044820152606401610724565b6000604051806080016040528085604001518152602001856020015181526020018481526020016112908660600151611f80565b90529050600061129f82611fe8565b905060006112b061040060106138cc565b6112be6104006101006138cc565b6112c8919061390b565b6112d561040060046138cc565b6112e36104006101006138cc565b6112ed919061390b565b6112f7919061390b565b8660a0015161130691906138a5565b905061131061323f565b61131861325e565b6113278860e001518486612060565b9250905061010061133b61040060046138cc565b611345919061390b565b8860a0015161135491906138cc565b611391826040516020016113689190613990565b604051602081830303815290604052805190602001208a606001516121e090919063ffffffff16565b61139b91906138b9565b8860800151146113ed5760405162461bcd60e51b815260206004820152601960248201527f496e636f727265637420726563616c6c20706f736974696f6e000000000000006044820152606401610724565b6113fc8860a0015185846122e6565b98975050505050505050565b60008281526002602052604081206114209083612459565b9392505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613af083398151915261146a81611c5b565b600f8290556000611479612465565b905080600d541115610cfb57600d555050565b60408101516114d65760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b6044820152606401610724565b6040808201516000908152600e60205220546001600160a01b03168061153e5760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f74207265676973746572656400000000006044820152606401610724565b60035460408051635a325a9f60e11b815290516000926001600160a01b03169163b464b53e9160048083019260c0929190829003018187875af1158015611589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ad9190613816565b90506115b881611c68565b60006115c88285604001516110bb565b90506115d48483610d7e565b600a5460608501516001600160401b03909116906115f19061248c565b111561164e5760405162461bcd60e51b815260206004820152602660248201527f457863656564696e672074686520616c6c6f776564206e756d626572206f662060448201526573686172647360d01b6064820152608401610724565b61165661323f565b7f00000000000000000000000000000000000000000000000000000000000000001561168c57611685856124d6565b9050611693565b5060e08401515b7f00000000000000000000000000000000000000000000000000000000000000001561171c5760006116c58683612585565b90508360400151811461171a5760405162461bcd60e51b815260206004820152601860248201527f496e636f6e73697374656e74206d65726b6c6520726f6f7400000000000000006044820152606401610724565b505b61172461323f565b905060006117328684611208565b90506000611751856060015188606001516127f890919063ffffffff16565b9050604081600d54611763919061390b565b901b8211156117b45760405162461bcd60e51b815260206004820152601b60248201527f446f206e6f7420726561636820746172676574207175616c69747900000000006044820152606401610724565b60008281526005602052604090205460ff16156118135760405162461bcd60e51b815260206004820152601960248201527f416e7377657220686173206265656e207375626d6974746564000000000000006044820152606401610724565b6000828152600560205260409020805460ff191660011790556004546001600160a01b031663b7a3c04c61010061184c610400806138cc565b611858906104006138cc565b6118639060086138cc565b61186d919061390b565b896080015161187c919061390b565b6040808b015190516001600160e01b031960e085901b16815260048101929092526001600160a01b038a1660248301526044820152606401600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b5050506040808901518751600c5460808c015184519182526020820152919350917ffedd8f58059af8fd54b4394c01ea8d07cac041988be3b5a822fb779f9c8de3a4910160405180910390a38451600b55600c8054600191906000906119499084906138b9565b909155505050505050505050565b6000818152600e60205260409020546001600160a01b031633146119bd5760405162461bcd60e51b815260206004820152601b60248201527f53656e64657220646f6573206e6f74206f776e206d696e6572496400000000006044820152606401610724565b6000818152600e602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339184917f9a26a8e7fd42c501b452c02016def8048e3ea28c2bf15127a9b5e2029d989bf191a45050565b60005460ff1615611a765760405162461bcd60e51b8152602060048201526024808201527f5a67496e697469616c697a61626c653a20616c726561647920696e697469616c6044820152631a5e995960e21b6064820152608401610724565b6000805460ff19166001178155611a9390611a8e3390565b611cf8565b611aab600080516020613af083398151915233611cf8565b611ab78360001961390b565b600d557f000000000000000000000000000000000000000000000000000000000000000015611ae757600019600d555b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055506064600655600a600781905560088190556014600955805467ffffffffffffffff191660201790556001601055565b600081815260026020526040812061066590612938565b60008281526001602081905260409091200154611b7681611c5b565b610cfb8383611d1a565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663b464b53e6040518163ffffffff1660e01b815260040160c0604051808303816000875af1158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc9190613816565b9050600b5481600001511180611c205750600754611c1b9060026138cc565b600c54105b91505090565b60006001600160e01b03198216637965db0b60e01b148061066557506301ffc9a760e01b6001600160e01b0319831614610665565b611c658133612942565b50565b600b5481511015611cc95760405162461bcd60e51b815260206004820152602560248201527f496e7465726e616c206572726f723a2065706f6368206e756d62657220646563604482015264726561736560d81b6064820152608401610724565b600b548151118015611cdd57506000600b54115b15611c6557611cea61299b565b6000600c5560085460075550565b611d0282826129db565b6000828152600260205260409020610cfb9082612a46565b611d248282612a5b565b6000828152600260205260409020610cfb9082612ac2565b610100611d4b610400806138cc565b611d57906104006138cc565b611d629060086138cc565b611d6c919061390b565b8251611d7891906138a5565b15611dc55760405162461bcd60e51b815260206004820152601d60248201527f537461727420706f736974696f6e206973206e6f7420616c69676e65640000006044820152606401610724565b602082015182518291611dd7916138b9565b1115611e1d5760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e6765206f766572666c6f7760581b6044820152606401610724565b6000611e288361248c565b610100611e37610400806138cc565b611e43906104006138cc565b611e4f906104006138cc565b611e5a9060086138cc565b611e64919061390b565b611e6e91906138cc565b90508083602001511115611ebc5760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e676520746f6f206c6f6e6760581b6044820152606401610724565b6000611ec88383612ad7565b90508084602001511015611f175760405162461bcd60e51b8152602060048201526016602482015275135a5b9a5b99c81c985b99d9481d1bdbc81cda1bdc9d60521b6044820152606401610724565b83606001518460400151166001600160401b0316600014611f7a5760405162461bcd60e51b815260206004820152601a60248201527f4d61736b656420626974732073686f756c64206265207a65726f0000000000006044820152606401610724565b50505050565b60008160000151826020015183604001518460600151604051602001611fcb949392919093845260208401929092526001600160401b03908116604084015216606082015260800190565b604051602081830303815290604052805190602001209050919050565b611ff061325e565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602080830191909152825190830151604084015160608501516106659385939092909160806001612aed565b61206861325e565b61207061323f565b600061207b84612bac565b90506120a981604061209061040060046138cc565b61209a919061390b565b6120a490886138cc565b612bc8565b60005b60808110156121395760408083208352822060208301528681608081106120d5576120d56139c1565b60200201518251188382608081106120ef576120ef6139c1565b6020020152866001820160808110612109576121096139c1565b602002015182600160200201511883826001016080811061212c5761212c6139c1565b60200201526002016120ac565b506121cc81604061214d61040060046138cc565b612157919061390b565b60018861216761040060106138cc565b6121756104006101006138cc565b61217f919061390b565b61218c61040060046138cc565b61219a6104006101006138cc565b6121a4919061390b565b6121ae919061390b565b6121b891906137ea565b6121c291906137ea565b6120a491906138cc565b6121d581612bac565b925050935093915050565b6000806101006121f2610400826138cc565b6121fc919061390b565b846020015161220b919061390b565b61221590846138a5565b6040850151606086015160208701519293508316179061010061223a610400826138cc565b612244919061390b565b612257906001600160401b0384166138cc565b11156122a55760405162461bcd60e51b815260206004820152601c60248201527f526563616c6c20706f736974696f6e206f7574206f6620626f756e64000000006044820152606401610724565b6101006122b4610400826138cc565b6122be919061390b565b6122d1906001600160401b0383166138cc565b85516122dd91906138b9565b95945050505050565b60006122f061325e565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b6020808301919091528451908501516123569183918891906000608081612aed565b905061236061327c565b60806000602061237361040060046138cc565b61237d919061390b565b6123889060206138cc565b6123939060806138b9565b9050601c8301601f8401602085016060860160e0870160e1880160f089018c600c87538b51865260208c015160208701525b888a101561242d5760808a01995060ff8a1684538960081c835380518552602081015160208601526040810151604086015260608101516060860152608081019050888a0361241357600182535b60408660d58a6009600019fa61242857600080fd5b6123c5565b505050505050505082600160088110612448576124486139c1565b602002015198975050505050505050565b60006114208383612be9565b6000600f54600003612478575060001990565b600f546124879060001961390b565b905090565b606081015160009019815b6001600160401b038216156124c7576124b16001836138eb565b90911690806124bf816139d7565b915050612497565b600160ff9091161b9392505050565b6124de61323f565b60408083015160c08401516080850151925161250e93906020019283526020830191909152604082015260600190565b60408051808303601f19018152919052805160209182012060e084018051519091188352519060009061254461040060046138cc565b61254e919061390b565b905081836020600184030281015b8082101561257b5760208084209381018051909418920191825261255c565b5050505050919050565b6000805b602061259861040060046138cc565b6125a2919061390b565b8110156125f05761010060208202840120808483608081106125c6576125c66139c1565b6020020181815250505060206101006125df919061390b565b6125e990826138b9565b9050612589565b506000612600602061010061390b565b90505b602061261261040060046138cc565b61261c919061390b565b8110156126ef5760005b602061263561040060046138cc565b61263f919061390b565b8110156126e657600084826080811061265a5761265a6139c1565b6020020151905060008561266e85856138b9565b6080811061267e5761267e6139c1565b6020020151905081816040516020016126a1929190918252602082015260400190565b604051602081830303815290604052805190602001208684608081106126c9576126c96139c1565b6020020152506126df9050600183901b826138b9565b9050612626565b5060011b612603565b5081516126fa61323f565b9250600061010061270e61040060046138cc565b612718919061390b565b8560800151612727919061390b565b905060005b856101000151518110156127ee576000806127486002856138a5565b600003612778578491508761010001518381518110612769576127696139c1565b6020026020010151905061279d565b876101000151838151811061278f5761278f6139c1565b602002602001015191508490505b60408051602081018490529081018290526060016040516020818303038152906040528051906020012094506002846127d6919061390b565b935050506001816127e791906138b9565b905061272c565b5090949350505050565b60008061010061280a610400806138cc565b612816906104006138cc565b612822906104006138cc565b61282d9060086138cc565b612837919061390b565b8311612843578261287f565b610100612852610400806138cc565b61285e906104006138cc565b61286a906104006138cc565b6128759060086138cc565b61287f919061390b565b9050600061288c8561248c565b612896908561390b565b905060006101006128a9610400806138cc565b6128b5906104006138cc565b6128c1906104006138cc565b6128cc9060086138cc565b6128d6919061390b565b82116128e2578161291e565b6101006128f1610400806138cc565b6128fd906104006138cc565b612909906104006138cc565b6129149060086138cc565b61291e919061390b565b905061292e81604085901b61390b565b9695505050505050565b6000610665825490565b61294c8282611427565b610d7a5761295981612c13565b612964836020612c25565b604051602001612975929190613a1a565b60408051601f198184030181529082905262461bcd60e51b825261072491600401613a8f565b600c54600090156129c85760006010600d54901c90506129c081600654600c54612dc0565b9150506129d2565b506001600160f01b035b611c6581612e6f565b6129e58282611427565b610d7a5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000611420836001600160a01b038416612f54565b612a658282611427565b15610d7a5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611420836001600160a01b038416612fa3565b6000818310612ae65781611420565b5090919050565b612af561325e565b600c6000612b028561309d565b8a516020808d0151835184830151604080516001600160e01b031960e08b901b168187015260248101969096526044860193909352606485018f9052608485018e905260a485018d905260c485018c90526001600160c01b031991821660e48601521660ec84015287151560f81b60f4840152805160d58185038101825260f5909401825293945091869184016009600019fa612b9e57600080fd5b505050979650505050505050565b612bb461325e565b815181526020918201519181019190915290565b60005b81811015610cfb576040808420845283206020840152600101612bcb565b6000826000018281548110612c0057612c006139c1565b9060005260206000200154905092915050565b60606106656001600160a01b03831660145b60606000612c348360026138cc565b612c3f9060026138b9565b6001600160401b03811115612c5657612c5661337d565b6040519080825280601f01601f191660200182016040528015612c80576020820181803683370190505b509050600360fc1b81600081518110612c9b57612c9b6139c1565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612cca57612cca6139c1565b60200101906001600160f81b031916908160001a9053506000612cee8460026138cc565b612cf99060016138b9565b90505b6001811115612d71576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612d2d57612d2d6139c1565b1a60f81b828281518110612d4357612d436139c1565b60200101906001600160f81b031916908160001a90535060049490941c93612d6a81613ac2565b9050612cfc565b5083156114205760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610724565b6000808060001985870985870292508281108382030391505080600003612dfa57838281612df057612df061388f565b0492505050611420565b808411612e0657600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b7f000000000000000000000000000000000000000000000000000000000000000015612e985750565b600d5460095460109190911c9060008184612eb46001836137ea565b612ebe90866138cc565b612ec891906138b9565b612ed2919061390b565b9050612edf8360026138cc565b811115612ef457612ef18360026138cc565b90505b612eff60028461390b565b811015612f1457612f1160028461390b565b90505b6001600160f01b03811115612f2d57506001600160f01b035b601081901b600d556000612f3f612465565b905080600d54111561101957600d5550505050565b6000818152600183016020526040812054612f9b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610665565b506000610665565b6000818152600183016020526040812054801561308c576000612fc76001836137ea565b8554909150600090612fdb906001906137ea565b9050818114613040576000866000018281548110612ffb57612ffb6139c1565b906000526020600020015490508087600001848154811061301e5761301e6139c1565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061305157613051613ad9565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610665565b6000915050610665565b5092915050565b6130a561325e565b620100008210156130e957600882811c66ffffffffffffff169083901b67ffffffffffffff00161760f01b5b6001600160c01b031916815260006020820152919050565b64010000000082101561312957600882811b63ff00ff001662ff00ff9184901c9190911617601081811b91901c1760e01b6001600160e01b0319166130d1565b68010000000000000000821015613143576130d1826131d9565b600160801b821015613193576001600160401b038216604083901c613167826131d9565b6001600160c01b031916835261317c816131d9565b6001600160c01b0319166020840152506131d49050565b60405162461bcd60e51b8152602060048201526016602482015275626c616b65326220696e70757420746f6f206c6f6e6760501b6044820152606401610724565b919050565b65ff000000ff00600882811b91821664ff000000ff9390911c92831617601090811b67ff000000ff0000009290921666ff000000ff0000939093169290921790911c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b90565b6040518061100001604052806080906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6000602082840312156132ad57600080fd5b81356001600160e01b03198116811461142057600080fd5b80356001600160a01b03811681146131d457600080fd5b80356001600160401b03811681146131d457600080fd5b6000806040838503121561330657600080fd5b61330f836132c5565b915061331d602084016132dc565b90509250929050565b60006020828403121561333857600080fd5b5035919050565b60006020828403121561335157600080fd5b611420826132dc565b6000806040838503121561336d57600080fd5b8235915061331d602084016132c5565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156133b6576133b661337d565b60405290565b6000608082840312156133ce57600080fd5b604051608081018181106001600160401b03821117156133f0576133f061337d565b80604052508091508235815260208301356020820152613412604084016132dc565b6040820152613423606084016132dc565b60608201525092915050565b600082601f83011261344057600080fd5b6040516110008082018281106001600160401b03821117156134645761346461337d565b6040528301818582111561347757600080fd5b845b82811015613491578035825260209182019101613479565b509195945050505050565b600082601f8301126134ad57600080fd5b813560206001600160401b03808311156134c9576134c961337d565b8260051b604051601f19603f830116810181811084821117156134ee576134ee61337d565b60405293845285810183019383810192508785111561350c57600080fd5b83870191505b8482101561352b57813583529183019190830190613512565b979650505050505050565b6000611160828403121561354957600080fd5b613551613393565b905081358152602082013560208201526040820135604082015261357883606084016133bc565b606082015260e082013560808201526101008083013560a083015261012083013560c08301526135ac84610140850161342f565b60e08301526111408301356001600160401b038111156135cb57600080fd5b6135d78582860161349c565b82840152505092915050565b600060c082840312156135f557600080fd5b60405160c081018181106001600160401b03821117156136175761361761337d565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b60008060e0838503121561366f57600080fd5b82356001600160401b0381111561368557600080fd5b61369185828601613536565b92505061331d84602085016135e3565b60008060e083850312156136b457600080fd5b6136be84846135e3565b9460c0939093013593505050565b600080604083850312156136df57600080fd5b82356001600160401b038111156136f557600080fd5b61370185828601613536565b95602094909401359450505050565b6000806040838503121561372357600080fd5b50508035926020909101359150565b60006020828403121561374457600080fd5b81356001600160401b0381111561375a57600080fd5b61376684828501613536565b949350505050565b6000806040838503121561378157600080fd5b61378a836132c5565b946020939093013593505050565b6000806000606084860312156137ad57600080fd5b833592506137bd602085016132c5565b91506137cb604085016132c5565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b81810381811115610665576106656137d4565b60006020828403121561380f57600080fd5b5051919050565b600060c0828403121561382857600080fd5b60405160c081018181106001600160401b038211171561384a5761384a61337d565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b634e487b7160e01b600052601260045260246000fd5b6000826138b4576138b461388f565b500690565b80820180821115610665576106656137d4565b60008160001904831182151516156138e6576138e66137d4565b500290565b6001600160401b03828116828216039080821115613096576130966137d4565b60008261391a5761391a61388f565b500490565b80516001600160801b03811681146131d457600080fd5b60006040828403121561394857600080fd5b604051604081018181106001600160401b038211171561396a5761396a61337d565b6040526139768361391f565b81526139846020840161391f565b60208201529392505050565b60408101818360005b60028110156139b8578151835260209283019290910190600101613999565b50505092915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036139ed576139ed6137d4565b60010192915050565b60005b83811015613a115781810151838201526020016139f9565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613a528160178501602088016139f6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613a838160288401602088016139f6565b01602801949350505050565b6020815260008251806020840152613aae8160408501602087016139f6565b601f01601f19169190910160400192915050565b600081613ad157613ad16137d4565b506000190190565b634e487b7160e01b600052603160045260246000fdfeb9d69e0ca90be54a40811e436234a7f7908b87ff2bec27e64f878b166da8e8e5a26469706673582212200eb99e085c29b1fd1f8ec1725a5680d8c8c8831462612f4f61b5f0a1db14621464736f6c63430008100033",
|
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102695760003560e01c80637bba7d6111610151578063ae722e82116100c3578063b776a51211610087578063b776a512146105f9578063ca15c87314610602578063d547741f14610615578063dddc61a814610628578063e282e27b14610631578063ffbc9bd01461063857600080fd5b8063ae722e82146105a2578063b0628ee0146105b5578063b15d20da146105c8578063b4988fd0146105dd578063b4a93283146105f057600080fd5b806391d148541161011557806391d148541461053b5780639dc787a21461054e578063a217fddf14610557578063a82791821461055f578063ad08fdfb14610568578063adaa7a0f1461057b57600080fd5b80637bba7d61146104be5780637eca5688146104e557806382975fe7146104ee5780638c0bca06146105155780639010d07c1461052857600080fd5b80632f2ff15d116101ea57806339cd53ee116101ae57806339cd53ee146104405780633baebb751461046957806348f614411461047c5780635bdca85514610485578063704d3c961461049857806378203ab6146104ab57600080fd5b80632f2ff15d146103f557806331223ba714610408578063331f3b9c14610411578063343aad821461041a57806336568abe1461042d57600080fd5b806316a4be6f1161023157806316a4be6f146102de578063228cb73314610309578063248a9ca314610334578063296beba7146103665780632a02573b146103e257600080fd5b806301ffc9a71461026e578063047c13f5146102965780630c655e1f146102ab578063158ef93e146102be5780631600c624146102cb575b600080fd5b61028161027c36600461329b565b610640565b60405190151581526020015b60405180910390f35b6102a96102a43660046132f3565b61066b565b005b6102a96102b9366004613326565b610787565b6000546102819060ff1681565b6102a96102d9366004613326565b6108e2565b600a546102f1906001600160401b031681565b6040516001600160401b03909116815260200161028d565b60045461031c906001600160a01b031681565b6040516001600160a01b03909116815260200161028d565b610358610342366004613326565b6000908152600160208190526040909120015490565b60405190815260200161028d565b610379610374366004613326565b610952565b60408051825180518252602080820151818401528184015183850152606080830151818501526080808401519085015260a0928301519284019290925284015160c08301529183015160e08201529101516001600160401b03166101008201526101200161028d565b6102a96103f036600461333f565b610bcf565b6102a961040336600461335a565b610cd5565b610358600b5481565b61035860065481565b60035461031c906001600160a01b031681565b6102a961043b36600461335a565b610d00565b61031c61044e366004613326565b600e602052600090815260409020546001600160a01b031681565b6102a961047736600461365c565b610d7e565b610358600d5481565b6102a9610493366004613326565b611020565b6102a96104a6366004613326565b61104d565b6103586104b93660046136a1565b6110bb565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b61035860085481565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b6103586105233660046136cc565b611208565b61031c610536366004613710565b611408565b61028161054936600461335a565b611427565b61035860105481565b610358600081565b610358600c5481565b6102a9610576366004613326565b611452565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b6102a96105b0366004613732565b61148c565b6102a96105c336600461376e565b611957565b610358600080516020613af083398151915281565b6102a96105eb366004613798565b611a17565b610358600f5481565b61035860075481565b610358610610366004613326565b611b43565b6102a961062336600461335a565b611b5a565b61035860095481565b60016102f1565b610281611b80565b60006001600160e01b03198216635a05180f60e01b1480610665575061066582611c26565b92915050565b60006106786001436137ea565b60408051914060208301526bffffffffffffffffffffffff193360601b16908201526001600160c01b031960c084901b166054820152605c0160408051601f1981840301815291815281516020928301206000818152600e9093529120549091506001600160a01b03161561072d5760405162461bcd60e51b8152602060048201526016602482015275135a5b995c9259081a185cc81c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b6000818152600e602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917fbfeb006f16aca8eb3d9953cf44db6b11b6f3041a313875dfa18f2e9d71bd309e9190a3505050565b600080516020613af083398151915261079f81611c5b565b600082116107f95760405162461bcd60e51b815260206004820152602160248201527f4e756d626572206f66207375627461736b732063616e6e6f74206265207a65726044820152606f60f81b6064820152608401610724565b600360009054906101000a90046001600160a01b03166001600160a01b031663f06820546040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087091906137fd565b82106108dc5760405162461bcd60e51b815260206004820152603560248201527f4e756d626572206f66207375627461736b73206d757374206265206c657373206044820152740e8d0c2dc40c4d8dec6d6e640e0cae440cae0dec6d605b1b6064820152608401610724565b50601055565b600080516020613af08339815191526108fa81611c5b565b61010082111561094c5760405162461bcd60e51b815260206004820152601d60248201527f746172676574206d696e6520626c6f636b206d757374203c3d203235360000006044820152606401610724565b50600655565b604080516101408101825260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290528252602082018190529181018290526060810191909152816109e85760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b6044820152606401610724565b6000828152600e60205260409020546001600160a01b031680610a4d5760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f74207265676973746572656400000000006044820152606401610724565b600a546001600160401b0316606083015260035460408051635a325a9f60e11b815290516001600160a01b039092169163b464b53e9160048082019260c09290919082900301816000875af1158015610aaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ace9190613816565b80835260105460a09091015160405160009291610af8918790602001918252602082015260400190565b6040516020818303038152906040528051906020012060001c610b1b91906138a5565b9050600081846000015160200151610b3391906138b9565b90508043111580610b4e5750600654610b4c82436137ea565b115b15610b5b57505050919050565b835160a001516040805160208082019390935283408183015281518082038301815260609091018252805192019190912090850152600b548451511115610ba7578351610ba790611c68565b600754610bb59060026138cc565b600c541015610bc757600d5460208501525b505050919050565b600080516020613af0833981519152610be781611c5b565b6000826001600160401b031611610c405760405162461bcd60e51b815260206004820152601f60248201527f4d6178207368617264206e756d6265722063616e6e6f74206265207a65726f006044820152606401610724565b610c4b6001836138eb565b82166001600160401b0316600014610cb15760405162461bcd60e51b815260206004820152602360248201527f4d6178207368617264206e756d626572206d75737420626520706f776572206f60448201526233101960e91b6064820152608401610724565b50600a805467ffffffffffffffff19166001600160401b0392909216919091179055565b60008281526001602081905260409091200154610cf181611c5b565b610cfb8383611cf8565b505050565b6001600160a01b0381163314610d705760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610724565b610d7a8282611d1a565b5050565b815160a082015114610dd25760405162461bcd60e51b815260206004820152601a60248201527f496e636f6e73697374656e74206d696e696e67206469676573740000000000006044820152606401610724565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708160a0015103610e455760405162461bcd60e51b815260206004820152601960248201527f456d707479206469676573742063616e206e6f74206d696e65000000000000006044820152606401610724565b600754610e539060026138cc565b600c5410610ea35760405162461bcd60e51b815260206004820152601c60248201527f45706f63682068617320656e6f756768207375626d697373696f6e73000000006044820152606401610724565b6000610100610eb4610400826138cc565b610ebe919061390b565b610100610ecd610400826138cc565b610ed7919061390b565b8360600151610ee6919061390b565b610ef091906138cc565b6060840151909150610f029082611d3c565b60035460c0840151604051630fab20e160e31b815260048101919091526000916001600160a01b031690637d590708906024016040805180830381865afa158015610f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f759190613936565b90506000610100610f8961040060046138cc565b610f93919061390b565b8560800151610fa291906138b9565b90508082600001516001600160801b0316108015610fcd57508082602001516001600160801b031610155b6110195760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207365616c656420636f6e74657874206469676573740000006044820152606401610724565b5050505050565b600080516020613af083398151915261103881611c5b565b6008829055600b54600003610d7a5750600755565b600080516020613af083398151915261106581611c5b565b600082116110b55760405162461bcd60e51b815260206004820152601d60248201527f41646a75737420726174696f206d757374206265206e6f6e2d7a65726f0000006044820152606401610724565b50600955565b6000806010548460a00151846040516020016110e1929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c61110491906138a5565b9050600081856020015161111891906138b9565b905080431161117c5760405162461bcd60e51b815260206004820152602a60248201527f4561726c696572207468616e206578706563746564207375627461736b20737460448201526930b93a10313637b1b59760b11b6064820152608401610724565b60065461118982436137ea565b11156111ce5760405162461bcd60e51b8152602060048201526014602482015273135a5b9948191958591b1a5b9948195e18d9595960621b6044820152606401610724565b60a0850151604080516020810192909252824090820152606001604051602081830303815290604052805190602001209250505092915050565b604082015160009061125c5760405162461bcd60e51b815260206004820152601860248201527f4d696e65722049442063616e6e6f7420626520656d70747900000000000000006044820152606401610724565b6000604051806080016040528085604001518152602001856020015181526020018481526020016112908660600151611f80565b90529050600061129f82611fe8565b905060006112b061040060106138cc565b6112be6104006101006138cc565b6112c8919061390b565b6112d561040060046138cc565b6112e36104006101006138cc565b6112ed919061390b565b6112f7919061390b565b8660a0015161130691906138a5565b905061131061323f565b61131861325e565b6113278860e001518486612060565b9250905061010061133b61040060046138cc565b611345919061390b565b8860a0015161135491906138cc565b611391826040516020016113689190613990565b604051602081830303815290604052805190602001208a606001516121e090919063ffffffff16565b61139b91906138b9565b8860800151146113ed5760405162461bcd60e51b815260206004820152601960248201527f496e636f727265637420726563616c6c20706f736974696f6e000000000000006044820152606401610724565b6113fc8860a0015185846122e6565b98975050505050505050565b60008281526002602052604081206114209083612459565b9392505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613af083398151915261146a81611c5b565b600f8290556000611479612465565b905080600d541115610cfb57600d555050565b60408101516114d65760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b6044820152606401610724565b6040808201516000908152600e60205220546001600160a01b03168061153e5760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f74207265676973746572656400000000006044820152606401610724565b60035460408051635a325a9f60e11b815290516000926001600160a01b03169163b464b53e9160048083019260c0929190829003018187875af1158015611589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ad9190613816565b90506115b881611c68565b60006115c88285604001516110bb565b90506115d48483610d7e565b600a5460608501516001600160401b03909116906115f19061248c565b111561164e5760405162461bcd60e51b815260206004820152602660248201527f457863656564696e672074686520616c6c6f776564206e756d626572206f662060448201526573686172647360d01b6064820152608401610724565b61165661323f565b7f00000000000000000000000000000000000000000000000000000000000000001561168c57611685856124d6565b9050611693565b5060e08401515b7f00000000000000000000000000000000000000000000000000000000000000001561171c5760006116c58683612585565b90508360400151811461171a5760405162461bcd60e51b815260206004820152601860248201527f496e636f6e73697374656e74206d65726b6c6520726f6f7400000000000000006044820152606401610724565b505b61172461323f565b905060006117328684611208565b90506000611751856060015188606001516127f890919063ffffffff16565b9050604081600d54611763919061390b565b901b8211156117b45760405162461bcd60e51b815260206004820152601b60248201527f446f206e6f7420726561636820746172676574207175616c69747900000000006044820152606401610724565b60008281526005602052604090205460ff16156118135760405162461bcd60e51b815260206004820152601960248201527f416e7377657220686173206265656e207375626d6974746564000000000000006044820152606401610724565b6000828152600560205260409020805460ff191660011790556004546001600160a01b031663b7a3c04c61010061184c610400806138cc565b611858906104006138cc565b6118639060086138cc565b61186d919061390b565b896080015161187c919061390b565b6040808b015190516001600160e01b031960e085901b16815260048101929092526001600160a01b038a1660248301526044820152606401600060405180830381600087803b1580156118ce57600080fd5b505af11580156118e2573d6000803e3d6000fd5b5050506040808901518751600c5460808c015184519182526020820152919350917ffedd8f58059af8fd54b4394c01ea8d07cac041988be3b5a822fb779f9c8de3a4910160405180910390a38451600b55600c8054600191906000906119499084906138b9565b909155505050505050505050565b6000818152600e60205260409020546001600160a01b031633146119bd5760405162461bcd60e51b815260206004820152601b60248201527f53656e64657220646f6573206e6f74206f776e206d696e6572496400000000006044820152606401610724565b6000818152600e602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339184917f9a26a8e7fd42c501b452c02016def8048e3ea28c2bf15127a9b5e2029d989bf191a45050565b60005460ff1615611a765760405162461bcd60e51b8152602060048201526024808201527f5a67496e697469616c697a61626c653a20616c726561647920696e697469616c6044820152631a5e995960e21b6064820152608401610724565b6000805460ff19166001178155611a9390611a8e3390565b611cf8565b611aab600080516020613af083398151915233611cf8565b611ab78360001961390b565b600d557f000000000000000000000000000000000000000000000000000000000000000015611ae757600019600d555b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055506064600655600a600781905560088190556014600955805467ffffffffffffffff191660201790556001601055565b600081815260026020526040812061066590612938565b60008281526001602081905260409091200154611b7681611c5b565b610cfb8383611d1a565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663b464b53e6040518163ffffffff1660e01b815260040160c0604051808303816000875af1158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc9190613816565b9050600b5481600001511180611c205750600754611c1b9060026138cc565b600c54105b91505090565b60006001600160e01b03198216637965db0b60e01b148061066557506301ffc9a760e01b6001600160e01b0319831614610665565b611c658133612942565b50565b600b5481511015611cc95760405162461bcd60e51b815260206004820152602560248201527f496e7465726e616c206572726f723a2065706f6368206e756d62657220646563604482015264726561736560d81b6064820152608401610724565b600b548151118015611cdd57506000600b54115b15611c6557611cea61299b565b6000600c5560085460075550565b611d0282826129db565b6000828152600260205260409020610cfb9082612a46565b611d248282612a5b565b6000828152600260205260409020610cfb9082612ac2565b610100611d4b610400806138cc565b611d57906104006138cc565b611d629060086138cc565b611d6c919061390b565b8251611d7891906138a5565b15611dc55760405162461bcd60e51b815260206004820152601d60248201527f537461727420706f736974696f6e206973206e6f7420616c69676e65640000006044820152606401610724565b602082015182518291611dd7916138b9565b1115611e1d5760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e6765206f766572666c6f7760581b6044820152606401610724565b6000611e288361248c565b610100611e37610400806138cc565b611e43906104006138cc565b611e4f906104006138cc565b611e5a9060086138cc565b611e64919061390b565b611e6e91906138cc565b90508083602001511115611ebc5760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e676520746f6f206c6f6e6760581b6044820152606401610724565b6000611ec88383612ad7565b90508084602001511015611f175760405162461bcd60e51b8152602060048201526016602482015275135a5b9a5b99c81c985b99d9481d1bdbc81cda1bdc9d60521b6044820152606401610724565b83606001518460400151166001600160401b0316600014611f7a5760405162461bcd60e51b815260206004820152601a60248201527f4d61736b656420626974732073686f756c64206265207a65726f0000000000006044820152606401610724565b50505050565b60008160000151826020015183604001518460600151604051602001611fcb949392919093845260208401929092526001600160401b03908116604084015216606082015260800190565b604051602081830303815290604052805190602001209050919050565b611ff061325e565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602080830191909152825190830151604084015160608501516106659385939092909160806001612aed565b61206861325e565b61207061323f565b600061207b84612bac565b90506120a981604061209061040060046138cc565b61209a919061390b565b6120a490886138cc565b612bc8565b60005b60808110156121395760408083208352822060208301528681608081106120d5576120d56139c1565b60200201518251188382608081106120ef576120ef6139c1565b6020020152866001820160808110612109576121096139c1565b602002015182600160200201511883826001016080811061212c5761212c6139c1565b60200201526002016120ac565b506121cc81604061214d61040060046138cc565b612157919061390b565b60018861216761040060106138cc565b6121756104006101006138cc565b61217f919061390b565b61218c61040060046138cc565b61219a6104006101006138cc565b6121a4919061390b565b6121ae919061390b565b6121b891906137ea565b6121c291906137ea565b6120a491906138cc565b6121d581612bac565b925050935093915050565b6000806101006121f2610400826138cc565b6121fc919061390b565b846020015161220b919061390b565b61221590846138a5565b6040850151606086015160208701519293508316179061010061223a610400826138cc565b612244919061390b565b612257906001600160401b0384166138cc565b11156122a55760405162461bcd60e51b815260206004820152601c60248201527f526563616c6c20706f736974696f6e206f7574206f6620626f756e64000000006044820152606401610724565b6101006122b4610400826138cc565b6122be919061390b565b6122d1906001600160401b0383166138cc565b85516122dd91906138b9565b95945050505050565b60006122f061325e565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b6020808301919091528451908501516123569183918891906000608081612aed565b905061236061327c565b60806000602061237361040060046138cc565b61237d919061390b565b6123889060206138cc565b6123939060806138b9565b9050601c8301601f8401602085016060860160e0870160e1880160f089018c600c87538b51865260208c015160208701525b888a101561242d5760808a01995060ff8a1684538960081c835380518552602081015160208601526040810151604086015260608101516060860152608081019050888a0361241357600182535b60408660d58a6009600019fa61242857600080fd5b6123c5565b505050505050505082600160088110612448576124486139c1565b602002015198975050505050505050565b60006114208383612be9565b6000600f54600003612478575060001990565b600f546124879060001961390b565b905090565b606081015160009019815b6001600160401b038216156124c7576124b16001836138eb565b90911690806124bf816139d7565b915050612497565b600160ff9091161b9392505050565b6124de61323f565b60408083015160c08401516080850151925161250e93906020019283526020830191909152604082015260600190565b60408051808303601f19018152919052805160209182012060e084018051519091188352519060009061254461040060046138cc565b61254e919061390b565b905081836020600184030281015b8082101561257b5760208084209381018051909418920191825261255c565b5050505050919050565b6000805b602061259861040060046138cc565b6125a2919061390b565b8110156125f05761010060208202840120808483608081106125c6576125c66139c1565b6020020181815250505060206101006125df919061390b565b6125e990826138b9565b9050612589565b506000612600602061010061390b565b90505b602061261261040060046138cc565b61261c919061390b565b8110156126ef5760005b602061263561040060046138cc565b61263f919061390b565b8110156126e657600084826080811061265a5761265a6139c1565b6020020151905060008561266e85856138b9565b6080811061267e5761267e6139c1565b6020020151905081816040516020016126a1929190918252602082015260400190565b604051602081830303815290604052805190602001208684608081106126c9576126c96139c1565b6020020152506126df9050600183901b826138b9565b9050612626565b5060011b612603565b5081516126fa61323f565b9250600061010061270e61040060046138cc565b612718919061390b565b8560800151612727919061390b565b905060005b856101000151518110156127ee576000806127486002856138a5565b600003612778578491508761010001518381518110612769576127696139c1565b6020026020010151905061279d565b876101000151838151811061278f5761278f6139c1565b602002602001015191508490505b60408051602081018490529081018290526060016040516020818303038152906040528051906020012094506002846127d6919061390b565b935050506001816127e791906138b9565b905061272c565b5090949350505050565b60008061010061280a610400806138cc565b612816906104006138cc565b612822906104006138cc565b61282d9060086138cc565b612837919061390b565b8311612843578261287f565b610100612852610400806138cc565b61285e906104006138cc565b61286a906104006138cc565b6128759060086138cc565b61287f919061390b565b9050600061288c8561248c565b612896908561390b565b905060006101006128a9610400806138cc565b6128b5906104006138cc565b6128c1906104006138cc565b6128cc9060086138cc565b6128d6919061390b565b82116128e2578161291e565b6101006128f1610400806138cc565b6128fd906104006138cc565b612909906104006138cc565b6129149060086138cc565b61291e919061390b565b905061292e81604085901b61390b565b9695505050505050565b6000610665825490565b61294c8282611427565b610d7a5761295981612c13565b612964836020612c25565b604051602001612975929190613a1a565b60408051601f198184030181529082905262461bcd60e51b825261072491600401613a8f565b600c54600090156129c85760006010600d54901c90506129c081600654600c54612dc0565b9150506129d2565b506001600160f01b035b611c6581612e6f565b6129e58282611427565b610d7a5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000611420836001600160a01b038416612f54565b612a658282611427565b15610d7a5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611420836001600160a01b038416612fa3565b6000818310612ae65781611420565b5090919050565b612af561325e565b600c6000612b028561309d565b8a516020808d0151835184830151604080516001600160e01b031960e08b901b168187015260248101969096526044860193909352606485018f9052608485018e905260a485018d905260c485018c90526001600160c01b031991821660e48601521660ec84015287151560f81b60f4840152805160d58185038101825260f5909401825293945091869184016009600019fa612b9e57600080fd5b505050979650505050505050565b612bb461325e565b815181526020918201519181019190915290565b60005b81811015610cfb576040808420845283206020840152600101612bcb565b6000826000018281548110612c0057612c006139c1565b9060005260206000200154905092915050565b60606106656001600160a01b03831660145b60606000612c348360026138cc565b612c3f9060026138b9565b6001600160401b03811115612c5657612c5661337d565b6040519080825280601f01601f191660200182016040528015612c80576020820181803683370190505b509050600360fc1b81600081518110612c9b57612c9b6139c1565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612cca57612cca6139c1565b60200101906001600160f81b031916908160001a9053506000612cee8460026138cc565b612cf99060016138b9565b90505b6001811115612d71576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612d2d57612d2d6139c1565b1a60f81b828281518110612d4357612d436139c1565b60200101906001600160f81b031916908160001a90535060049490941c93612d6a81613ac2565b9050612cfc565b5083156114205760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610724565b6000808060001985870985870292508281108382030391505080600003612dfa57838281612df057612df061388f565b0492505050611420565b808411612e0657600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b7f000000000000000000000000000000000000000000000000000000000000000015612e985750565b600d5460095460109190911c9060008184612eb46001836137ea565b612ebe90866138cc565b612ec891906138b9565b612ed2919061390b565b9050612edf8360026138cc565b811115612ef457612ef18360026138cc565b90505b612eff60028461390b565b811015612f1457612f1160028461390b565b90505b6001600160f01b03811115612f2d57506001600160f01b035b601081901b600d556000612f3f612465565b905080600d54111561101957600d5550505050565b6000818152600183016020526040812054612f9b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610665565b506000610665565b6000818152600183016020526040812054801561308c576000612fc76001836137ea565b8554909150600090612fdb906001906137ea565b9050818114613040576000866000018281548110612ffb57612ffb6139c1565b906000526020600020015490508087600001848154811061301e5761301e6139c1565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061305157613051613ad9565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610665565b6000915050610665565b5092915050565b6130a561325e565b620100008210156130e957600882811c66ffffffffffffff169083901b67ffffffffffffff00161760f01b5b6001600160c01b031916815260006020820152919050565b64010000000082101561312957600882811b63ff00ff001662ff00ff9184901c9190911617601081811b91901c1760e01b6001600160e01b0319166130d1565b68010000000000000000821015613143576130d1826131d9565b600160801b821015613193576001600160401b038216604083901c613167826131d9565b6001600160c01b031916835261317c816131d9565b6001600160c01b0319166020840152506131d49050565b60405162461bcd60e51b8152602060048201526016602482015275626c616b65326220696e70757420746f6f206c6f6e6760501b6044820152606401610724565b919050565b65ff000000ff00600882811b91821664ff000000ff9390911c92831617601090811b67ff000000ff0000009290921666ff000000ff0000939093169290921790911c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b90565b6040518061100001604052806080906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6000602082840312156132ad57600080fd5b81356001600160e01b03198116811461142057600080fd5b80356001600160a01b03811681146131d457600080fd5b80356001600160401b03811681146131d457600080fd5b6000806040838503121561330657600080fd5b61330f836132c5565b915061331d602084016132dc565b90509250929050565b60006020828403121561333857600080fd5b5035919050565b60006020828403121561335157600080fd5b611420826132dc565b6000806040838503121561336d57600080fd5b8235915061331d602084016132c5565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156133b6576133b661337d565b60405290565b6000608082840312156133ce57600080fd5b604051608081018181106001600160401b03821117156133f0576133f061337d565b80604052508091508235815260208301356020820152613412604084016132dc565b6040820152613423606084016132dc565b60608201525092915050565b600082601f83011261344057600080fd5b6040516110008082018281106001600160401b03821117156134645761346461337d565b6040528301818582111561347757600080fd5b845b82811015613491578035825260209182019101613479565b509195945050505050565b600082601f8301126134ad57600080fd5b813560206001600160401b03808311156134c9576134c961337d565b8260051b604051601f19603f830116810181811084821117156134ee576134ee61337d565b60405293845285810183019383810192508785111561350c57600080fd5b83870191505b8482101561352b57813583529183019190830190613512565b979650505050505050565b6000611160828403121561354957600080fd5b613551613393565b905081358152602082013560208201526040820135604082015261357883606084016133bc565b606082015260e082013560808201526101008083013560a083015261012083013560c08301526135ac84610140850161342f565b60e08301526111408301356001600160401b038111156135cb57600080fd5b6135d78582860161349c565b82840152505092915050565b600060c082840312156135f557600080fd5b60405160c081018181106001600160401b03821117156136175761361761337d565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b60008060e0838503121561366f57600080fd5b82356001600160401b0381111561368557600080fd5b61369185828601613536565b92505061331d84602085016135e3565b60008060e083850312156136b457600080fd5b6136be84846135e3565b9460c0939093013593505050565b600080604083850312156136df57600080fd5b82356001600160401b038111156136f557600080fd5b61370185828601613536565b95602094909401359450505050565b6000806040838503121561372357600080fd5b50508035926020909101359150565b60006020828403121561374457600080fd5b81356001600160401b0381111561375a57600080fd5b61376684828501613536565b949350505050565b6000806040838503121561378157600080fd5b61378a836132c5565b946020939093013593505050565b6000806000606084860312156137ad57600080fd5b833592506137bd602085016132c5565b91506137cb604085016132c5565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b81810381811115610665576106656137d4565b60006020828403121561380f57600080fd5b5051919050565b600060c0828403121561382857600080fd5b60405160c081018181106001600160401b038211171561384a5761384a61337d565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b634e487b7160e01b600052601260045260246000fd5b6000826138b4576138b461388f565b500690565b80820180821115610665576106656137d4565b60008160001904831182151516156138e6576138e66137d4565b500290565b6001600160401b03828116828216039080821115613096576130966137d4565b60008261391a5761391a61388f565b500490565b80516001600160801b03811681146131d457600080fd5b60006040828403121561394857600080fd5b604051604081018181106001600160401b038211171561396a5761396a61337d565b6040526139768361391f565b81526139846020840161391f565b60208201529392505050565b60408101818360005b60028110156139b8578151835260209283019290910190600101613999565b50505092915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036139ed576139ed6137d4565b60010192915050565b60005b83811015613a115781810151838201526020016139f9565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613a528160178501602088016139f6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613a838160288401602088016139f6565b01602801949350505050565b6020815260008251806020840152613aae8160408501602087016139f6565b601f01601f19169190910160400192915050565b600081613ad157613ad16137d4565b506000190190565b634e487b7160e01b600052603160045260246000fdfeb9d69e0ca90be54a40811e436234a7f7908b87ff2bec27e64f878b166da8e8e5a26469706673582212200eb99e085c29b1fd1f8ec1725a5680d8c8c8831462612f4f61b5f0a1db14621464736f6c63430008100033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|