witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
1,235 lines • 116 kB
JSON
{
"_format": "hh3-artifact-1",
"contractName": "WitOracleRadonRegistryDefaultV21",
"sourceName": "contracts/core/trustless/WitOracleRadonRegistryDefaultV21.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"name": "NewRadonReducer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "Witnet.RadonHash",
"name": "radonHash",
"type": "bytes32"
}
],
"name": "NewRadonRequest",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"name": "NewRadonRetrieval",
"type": "event"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "bytecodeOf",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_radBytecode",
"type": "bytes"
},
{
"components": [
{
"internalType": "uint16",
"name": "witResultMaxSize",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "witCommitteeSize",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "witUnitaryReward",
"type": "uint64"
}
],
"internalType": "struct Witnet.QuerySLA",
"name": "_sla",
"type": "tuple"
}
],
"name": "bytecodeOf",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
},
{
"components": [
{
"internalType": "uint16",
"name": "witResultMaxSize",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "witCommitteeSize",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "witUnitaryReward",
"type": "uint64"
}
],
"internalType": "struct Witnet.QuerySLA",
"name": "_sla",
"type": "tuple"
}
],
"name": "bytecodeOf",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "class",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "_radBytecode",
"type": "bytes"
}
],
"name": "hashOf",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_radonReducerHash",
"type": "bytes32"
}
],
"name": "isVerifiedRadonReducer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radonRequestHash",
"type": "bytes32"
}
],
"name": "isVerifiedRadonRequest",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_radonRetrievalHash",
"type": "bytes32"
}
],
"name": "isVerifiedRadonRetrieval",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_hash",
"type": "bytes32"
}
],
"name": "lookupRadonReducer",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_reducer",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequest",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "method",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "dataType",
"type": "uint8"
},
{
"internalType": "string",
"name": "url",
"type": "string"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "radonScript",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonRetrieval[]",
"name": "retrieve",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "aggregate",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "tally",
"type": "tuple"
}
],
"internalType": "struct Witnet.RadonRequest",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestAggregator",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestBytecode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestCrowdAttestationTally",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestResultDataType",
"outputs": [
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "_resultDataType",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestResultMaxSize",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestRetrievals",
"outputs": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "method",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "dataType",
"type": "uint8"
},
{
"internalType": "string",
"name": "url",
"type": "string"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "radonScript",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonRetrieval[]",
"name": "_retrievals",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestRetrievalsAggregator",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestRetrievalsCount",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestSources",
"outputs": [
{
"internalType": "bytes32[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestSourcesCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"name": "lookupRadonRequestTally",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_hash",
"type": "bytes32"
}
],
"name": "lookupRadonRetrieval",
"outputs": [
{
"components": [
{
"internalType": "uint8",
"name": "argsCount",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "method",
"type": "uint8"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "dataType",
"type": "uint8"
},
{
"internalType": "string",
"name": "url",
"type": "string"
},
{
"internalType": "string",
"name": "body",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "headers",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "radonScript",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonRetrieval",
"name": "_source",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_hash",
"type": "bytes32"
}
],
"name": "lookupRadonRetrievalArgsCount",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_hash",
"type": "bytes32"
}
],
"name": "lookupRadonRetrievalResultDataType",
"outputs": [
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "specs",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_reducer",
"type": "tuple"
}
],
"name": "verifyRadonReducer",
"outputs": [
{
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "_retrieveHashes",
"type": "bytes32[]"
},
{
"internalType": "bytes32",
"name": "_aggregateReducerHash",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "_tallyReducerHash",
"type": "bytes32"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "radHash",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "_retrieveHashes",
"type": "bytes32[]"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_aggregateReducer",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_tallyReducer",
"type": "tuple"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "radHash",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "modalRetrieveHash",
"type": "bytes32"
},
{
"internalType": "string[]",
"name": "modalArgs",
"type": "string[]"
},
{
"internalType": "string[]",
"name": "modalUrls",
"type": "string[]"
},
{
"internalType": "bytes32",
"name": "dataSourcesAggregatorHash",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "crowdAttestationTallyHash",
"type": "bytes32"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "_radHash",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "_retrieveHashes",
"type": "bytes32[]"
},
{
"internalType": "bytes32",
"name": "_aggregateReducerHash",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "_tallyReducerHash",
"type": "bytes32"
},
{
"internalType": "uint16",
"name": "",
"type": "uint16"
},
{
"internalType": "string[][]",
"name": "_retrieveArgsValues",
"type": "string[][]"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "_retrieveHashes",
"type": "bytes32[]"
},
{
"internalType": "string[][]",
"name": "_retrieveArgsValues",
"type": "string[][]"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_aggregateReducer",
"type": "tuple"
},
{
"components": [
{
"internalType": "enum Witnet.RadonReduceOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"components": [
{
"internalType": "enum Witnet.RadonFilterOpcodes",
"name": "opcode",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "cborArgs",
"type": "bytes"
}
],
"internalType": "struct Witnet.RadonFilter[]",
"name": "filters",
"type": "tuple[]"
}
],
"internalType": "struct Witnet.RadonReducer",
"name": "_tallyReducer",
"type": "tuple"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "_retrieveHashes",
"type": "bytes32[]"
},
{
"internalType": "string[][]",
"name": "_retrieveArgsValues",
"type": "string[][]"
},
{
"internalType": "bytes32",
"name": "_aggregateReducerHash",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "_tallyReducerHash",
"type": "bytes32"
}
],
"name": "verifyRadonRequest",
"outputs": [
{
"internalType": "Witnet.RadonHash",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum Witnet.RadonRetrievalMethods",
"name": "_requestMethod",
"type": "uint8"
},
{
"internalType": "string",
"name": "_requestURL",
"type": "string"
},
{
"internalType": "string",
"name": "_requestBody",
"type": "string"
},
{
"internalType": "string[2][]",
"name": "_requestHeaders",
"type": "string[2][]"
},
{
"internalType": "bytes",
"name": "_requestRadonScript",
"type": "bytes"
}
],
"name": "verifyRadonRetrieval",
"outputs": [
{
"internalType": "bytes32",
"name": "hash",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x6080604052348015600e575f5ffd5b507f673359bdfd0124f9962355e7aed2d07d989b0d4bc4cbe2c94c295e0f81427dec80546001600160a01b031916301790556151478061004d5f395ff3fe6080604052600436106101e9575f3560e01c80639a7af84e11610108578063adb7c3f71161009d578063c61fa8931161006d578063c61fa89314610643578063db4c6b2114610662578063dbc218ef14610681578063dcf3f972146106a0578063f0bd92d9146106bf575f5ffd5b8063adb7c3f71461059f578063b4ab01a5146105c0578063b73cb313146105df578063bff852fa146105fe575f5ffd5b8063a0490fa0116100d8578063a0490fa014610516578063a0e5533614610535578063a4a7cecd14610554578063a83e942c14610573575f5ffd5b80639a7af84e1461048d5780639dd48757146104ac5780639eb3ab1f146104d85780639f34df19146104f7575f5ffd5b80636bd046341161017e5780637f412e231161014e5780637f412e23146104115780638a22776414610430578063977e01571461044f57806398cb04f41461046e575f5ffd5b80636bd04634146103755780636ea3ebe41461039457806376b78a06146103b357806377c11259146103e5575f5ffd5b806340c5da1d116101b957806340c5da1d146102de57806348223a0b1461030b5780634c7291041461032a57806368ec07a414610356575f5ffd5b80632229e86e1461022157806323f2e3ea146102555780632ebf5d5c146102865780633679f864146102b2575f5ffd5b3661021d5761021b6040518060400160405280600c81526020016b6e6f207472616e736665727360a01b8152506106eb565b005b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004613993565b61075b565b60405190151581526020015b60405180910390f35b348015610260575f5ffd5b5061027461026f366004613993565b610796565b60405160ff909116815260200161024c565b348015610291575f5ffd5b506102a56102a0366004613993565b6107bc565b60405161024c91906139d8565b3480156102bd575f5ffd5b506102d16102cc366004613993565b610837565b60405161024c9190613ab8565b3480156102e9575f5ffd5b506102fd6102f8366004613b11565b610a13565b60405190815260200161024c565b348015610316575f5ffd5b506102d1610325366004613993565b610a75565b348015610335575f5ffd5b50610349610344366004613993565b610ac5565b60405161024c9190613b6d565b348015610361575f5ffd5b50610240610370366004613993565b610b53565b348015610380575f5ffd5b506102fd61038f366004613b8b565b610b83565b34801561039f575f5ffd5b506102fd6103ae366004613993565b610bf2565b3480156103be575f5ffd5b506103d26103cd366004613993565b610c14565b60405161ffff909116815260200161024c565b3480156103f0575f5ffd5b506104046103ff366004613993565b610c2b565b60405161024c9190613d97565b34801561041c575f5ffd5b506102fd61042b366004613fd7565b61104a565b34801561043b575f5ffd5b506102a561044a366004613993565b611189565b34801561045a575f5ffd5b50610240610469366004613993565b611240565b348015610479575f5ffd5b506102fd610488366004614010565b61127d565b348015610498575f5ffd5b506102a56104a73660046140e2565b611a58565b3480156104b7575f5ffd5b506104cb6104c6366004613993565b611b8e565b60405161024c9190614132565b3480156104e3575f5ffd5b506102fd6104f236600461421f565b611f5a565b348015610502575f5ffd5b506102d1610511366004613993565b612289565b348015610521575f5ffd5b506102fd6105303660046142e9565b6122f8565b348015610540575f5ffd5b5061034961054f366004613993565b612340565b34801561055f575f5ffd5b506102fd61056e366004614338565b612370565b34801561057e575f5ffd5b5061059261058d366004613993565b612393565b60405161024c91906143c8565b3480156105aa575f5ffd5b5060405163a614fef760e01b815260200161024c565b3480156105cb575f5ffd5b506102746105da366004613993565b612402565b3480156105ea575f5ffd5b506102fd6105f936600461440a565b61242c565b348015610609575f5ffd5b506040805180820190915260208082527f5769744f7261636c655261646f6e526567697374727944656661756c74563231908201526102a5565b34801561064e575f5ffd5b506102d161065d366004613993565b612455565b34801561066d575f5ffd5b506102d161067c366004613993565b6124ac565b34801561068c575f5ffd5b506102fd61069b3660046144c8565b612518565b3480156106ab575f5ffd5b506102a56106ba366004614543565b61252f565b3480156106ca575f5ffd5b506106de6106d9366004613993565b612672565b60405161024c919061456e565b60408051808201825260208082527f5769744f7261636c655261646f6e526567697374727944656661756c7456323181830152915161072c928491016145db565b60408051601f198184030181529082905262461bcd60e51b8252610752916004016139d8565b60405180910390fd5b5f806107656126b2565b5f848152600291909101602052604090205460ff16600b81111561078b5761078b6139ea565b60ff16141592915050565b5f61079f6126b2565b5f928352600701602052506040902054600160781b900460ff1690565b6060816108255f6107cb6126b2565b5f8481526006919091016020526040902080546107e7906145fb565b9050116040518060400160405280601781526020017f756e7665726966696564206461746120726571756573740000000000000000008152506126d6565b61082e83611189565b91505b50919050565b604080518082019091525f8152606060208201526108536126b2565b5f83815260029190910160205260409081902081518083019092528054829060ff16600b811115610886576108866139ea565b600b811115610897576108976139ea565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109ac575f8481526020902060408051808201909152600284029091018054829060ff1660098111156108f8576108f86139ea565b6009811115610909576109096139ea565b815260200160018201805461091d906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610949906145fb565b80156109945780601f1061096b57610100808354040283529160200191610994565b820191905f5260205f20905b81548152906001019060200180831161097757829003601f168201915b505050505081525050815260200190600101906108bf565b505050915250508051909150610a0e90600b8111156109cd576109cd6139ea565b60ff165f14156040518060400160405280601781526020017f756e7665726966696564206461746120726564756365720000000000000000008152506126d6565b919050565b5f610a6c8585806001600160401b03811115610a3157610a31613da9565b604051908082528060200260200182016040528015610a6457816020015b6060815260200190600190039081610a4f5790505b5086866126e8565b95945050505050565b604080518082019091525f81526060602082015281610a965f6107cb6126b2565b61082e610aa16126b2565b5f858152600791909101602052604090205460881b6001600160881b031916610837565b5f81610ad35f6107cb6126b2565b610adb6126b2565b5f8481526007919091016020526040902054600160f81b900460ff169150816013811115610b0b57610b0b6139ea565b60ff165f036108315761082e610b1f6126b2565b6004015f8581526020019081526020015f206004015f81548110610b4557610b4561462d565b905f5260205f200154612340565b5f5f610b5d6126b2565b5f848152600691909101602052604090208054610b79906145fb565b9050119050919050565b5f610a6c8585806001600160401b03811115610ba157610ba1613da9565b604051908082528060200260200182016040528015610bd457816020015b6060815260200190600190039081610bbf5790505b50610be161042b88614641565b610bed61042b88614641565b6126e8565b5f81610c005f6107cb6126b2565b610c098361331f565b600401549392505050565b5f81610c225f6107cb6126b2565b50602092915050565b606081610c3a5f6107cb6126b2565b610c438361331f565b600401546001600160401b03811115610c5e57610c5e613da9565b604051908082528060200260200182016040528015610c9757816020015b610c846137c8565b815260200190600190039081610c7c5790505b5091505f5b825181101561104357610cad6126b2565b6003015f610cba8661331f565b6004018381548110610cce57610cce61462d565b5f91825260208083209091015483528281019390935260409182019020815160e08101909252805460ff80821684529293919291840191610100909104166004811115610d1d57610d1d6139ea565b6004811115610d2e57610d2e6139ea565b8152815460209091019062010000900460ff166013811115610d5257610d526139ea565b6013811115610d6357610d636139ea565b8152602001600182018054610d77906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610da3906145fb565b8015610dee5780601f10610dc557610100808354040283529160200191610dee565b820191905f5260205f20905b815481529060010190602001808311610dd157829003601f168201915b50505050508152602001600282018054610e07906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e33906145fb565b8015610e7e5780601f10610e5557610100808354040283529160200191610e7e565b820191905f5260205f20905b815481529060010190602001808311610e6157829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b82821015610f86575f84815260208120604080518082019091529160028086029092019190835b82821015610f73578382018054610ee8906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f14906145fb565b8015610f5f5780601f10610f3657610100808354040283529160200191610f5f565b820191905f5260205f20905b815481529060010190602001808311610f4257829003601f168201915b505050505081526020019060010190610ed2565b5050505081526020019060010190610eab565b505050508152602001600482018054610f9e906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610fca906145fb565b80156110155780601f10610fec57610100808354040283529160200191611015565b820191905f5260205f20905b815481529060010190602001808311610ff857829003601f168201915b5050505050815250508382815181106110305761103061462d565b6020908102919091010152600101610c9c565b5050919050565b5f8160405160200161105c9190613ab8565b604051602081830303815290604052805190602001206001600160881b03191690505f6110876126b2565b5f83815260029190910160205260409020805490915060ff16600b8111156110b1576110b16139ea565b60ff165f036108315760405163daf4b0ef60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9063daf4b0ef906110f190869060040161464c565b5f6040518083038186803b158015611107575f5ffd5b505af4158015611119573d5f5f3e3d5ffd5b50508451835490925083915060ff1916600183600b81111561113d5761113d6139ea565b021790555061115081846020015161333a565b6040518281527f320dd9c6faaa443dc32e80fbf490af796ec6dce6bbb09027a5b37444fa4571d79060200160405180910390a150919050565b6060816111985f6107cb6126b2565b6111a06126b2565b5f8481526006919091016020526040902080546111bc906145fb565b80601f01602080910402602001604051908101604052809291908181526020018280546111e8906145fb565b80156112335780601f1061120a57610100808354040283529160200191611233565b820191905f5260205f20905b81548152906001019060200180831161121657829003601f168201915b5050505050915050919050565b5f8061124a6126b2565b5f8481526003919091016020526040902054610100900460ff166004811115611275576112756139ea565b141592915050565b5f5f8886868a8a888860405160200161129c979695949392919061479a565b6040516020818303038152906040528051906020012090506112bc6126b2565b5f828152600591909101602052604090205491506112f16112db6126b2565b5f83815260059190910160205260409020541590565b15611a4c575f856001600160401b0381111561130f5761130f613da9565b60405190808252806020026020018201604052801561134857816020015b6113356137c8565b81526020019060019003908161132d5790505b5090505f5b8681101561144157805f03611387576113658b611b8e565b825f815181106113775761137761462d565b60200260200101819052506113bf565b815f815181106113995761139961462d565b60200260200101518282815181106113b3576113b361462d565b60200260200101819052505b8787828181106113d1576113d161462d565b90506020028101906113e391906147dd565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250508451859250849150811061142a5761142a61462d565b60209081029190910101516060015260010161134d565b505f73__$837d11b4e2c5af92796e708387f786b6cb$__63d7a7291e838c8c6114686126b2565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b81111561149b5761149b6139ea565b600b8111156114ac576114ac6139ea565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156115c1575f8481526020902060408051808201909152600284029091018054829060ff16600981111561150d5761150d6139ea565b600981111561151e5761151e6139ea565b8152602001600182018054611532906145fb565b80601f016020809104026020016040519081016040528092919081815260200182805461155e906145fb565b80156115a95780601f10611580576101008083540402835291602001916115a9565b820191905f5260205f20905b81548152906001019060200180831161158c57829003601f168201915b505050505081525050815260200190600101906114d4565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b916115fe919060040161464c565b5f60405180830381865af4158015611618573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261163f919081019061481f565b6116476126b2565b5f8c815260029190910160205260409081902081518083019092528054829060ff16600b81111561167a5761167a6139ea565b600b81111561168b5761168b6139ea565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156117a0575f8481526020902060408051808201909152600284029091018054829060ff1660098111156116ec576116ec6139ea565b60098111156116fd576116fd6139ea565b8152602001600182018054611711906145fb565b80601f016020809104026020016040519081016040528092919081815260200182805461173d906145fb565b80156117885780601f1061175f57610100808354040283529160200191611788565b820191905f5260205f20905b81548152906001019060200180831161176b57829003601f168201915b505050505081525050815260200190600101906116b3565b50505091525050604051631c02d22b60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__91631c02d22b916117dd919060040161464c565b5f60405180830381865af41580156117f7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261181e919081019061481f565b6040518663ffffffff1660e01b815260040161183e95949392919061496f565b5f60405180830381865af4158015611858573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261187f919081019061481f565b90506118b861ffff825111156040518060400160405280600f81526020016e1d1bdbc8189a59c81c995c5d595cdd608a1b8152506126d6565b6118c1816133cc565b9350836118cc6126b2565b5f8581526005919091016020526040902055806118e76126b2565b5f86815260069190910160205260409020906119039082614a52565b506040518060800160405280866001600160881b03191681526020018989905060ff168152602001876001600160881b0319168152602001835f8151811061194d5761194d61462d565b602002602001015160400151601381111561196a5761196a6139ea565b90526119746126b2565b5f8681526007919091016020908152604091829020835181549285015193850151608890811c600160801b02600160801b600160f81b031960ff909616600160781b026001600160801b03199095169290911c91909117929092179283168217815560608401519092909183916001600160f81b039091166001600160801b0390911617600160f81b836013811115611a0f57611a0f6139ea565b0217905550506040518581527f33415078470d846accbdec5f4869eae9b8cb9ae69d7fa487792b6b0daf9f736e915060200160405180910390a150505b50979650505050505050565b60405163acbade1f60e01b81526001600160401b0383166004820152600560f91b602482015260609073__$837d11b4e2c5af92796e708387f786b6cb$__9063acbade1f906044015f60405180830381865af4158015611aba573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ae1919081019061481f565b8484611aec8561341b565b60405163b7aa578f60e01b815273__$837d11b4e2c5af92796e708387f786b6cb$__9163b7aa578f91611b229190600401614b0c565b5f60405180830381865af4158015611b3c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b63919081019061481f565b604051602001611b769493929190614b66565b60405160208183030381529060405290509392505050565b611b966137c8565b81611c055f5b611ba46126b2565b5f8481526003919091016020526040902054610100900460ff166004811115611bcf57611bcf6139ea565b141560405180604001604052806016815260200175756e7665726966696564206461746120736f7572636560501b8152506126d6565b611c0d6126b2565b5f8481526003919091016020908152604091829020825160e08101909352805460ff80821685529192840191610100909104166004811115611c5157611c516139ea565b6004811115611c6257611c626139ea565b8152815460209091019062010000900460ff166013811115611c8657611c866139ea565b6013811115611c9757611c976139ea565b8152602001600182018054611cab906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd7906145fb565b8015611d225780601f10611cf957610100808354040283529160200191611d22565b820191905f5260205f20905b815481529060010190602001808311611d0557829003601f168201915b50505050508152602001600282018054611d3b906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611d67906145fb565b8015611db25780601f10611d8957610100808354040283529160200191611db2565b820191905f5260205f20905b815481529060010190602001808311611d9557829003601f168201915b5050505050815260200160038201805480602002602001604051908101604052809291908181526020015f905b82821015611eba575f84815260208120604080518082019091529160028086029092019190835b82821015611ea7578382018054611e1c906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e48906145fb565b8015611e935780601f10611e6a57610100808354040283529160200191611e93565b820191905f5260205f20905b815481529060010190602001808311611e7657829003601f168201915b505050505081526020019060010190611e06565b5050505081526020019060010190611ddf565b505050508152602001600482018054611ed2906145fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611efe906145fb565b8015611f495780601f10611f2057610100808354040283529160200191611f49565b820191905f5260205f20905b815481529060010190602001808311611f2c57829003601f168201915b505050505081525050915050919050565b5f856004811115611f6d57611f6d6139ea565b604051630db1b26960e21b815273__$837d11b4e2c5af92796e708387f786b6cb$__916336c6c9a491611fab91908990899089908990600401614b91565b602060405180830381865af4158015611fc6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fea9190614bea565b90505f611ff56126b2565b5f8381526003919091016020526040902054610100900460ff166004811115612020576120206139ea565b03610a6c576040518060e001604052806120af87604051806040016040528060018152602001600160fd1b81525088604051806040016040528060018152602001600160fd1b81525089604051806040016040528060018152602001600160fd1b8152508a60405160200161209b9796959493929190614c01565b604051602081830303815290604052613514565b60ff1681526020018760048111156120c9576120c96139ea565b815260200173__$837d11b4e2c5af92796e708387f786b6cb$__63f3106f78856040518263ffffffff1660e01b815260040161210591906139d8565b602060405180830381865af4158015612120573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121449190614c97565b6013811115612155576121556139ea565b8152602001868152602001858152602001848152602001838152506121786126b2565b5f838152600391909101602090815260409091208251815460ff90911660ff19821681178355928401519192839161ffff1916176101008360048111156121c1576121c16139ea565b021790555060408201518154829062ff00001916620100008360138111156121eb576121eb6139ea565b0217905550606082015160018201906122049082614a52565b50608082015160028201906122199082614a52565b5060a08201518051612235916003840191602090910190613804565b5060c0820151600482019061224a9082614a52565b50506040518281527fbe95e1bda0ae521f178da31f3aae4e1218556af2a302dd68319055236c235b92915060200160405180910390a195945050505050565b604080518082019091525f815260606020820152816122aa5f6107cb6126b2565b5f6122b48461331f565b60050154146122d9576122d26122c98461331f565b60010154610837565b9150610831565b6122d26122e58461331f565b600101546001600160801b031916610837565b5f61233783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506133cc92505050565b90505b92915050565b5f8161234b82611b9c565b6123536126b2565b5f9384526003016020525050604090205462010000900460ff1690565b5f61238788886123808587614cbc565b89896126e8565b98975050505050505050565b6060816123a25f6107cb6126b2565b6123ab8361331f565b60040180548060200260200160405190810160405280929190818152602001828054801561123357602002820191905f5260205f20905b8154815260200190600101908083116123e2575050505050915050919050565b5f8161240d82611b9c565b6124156126b2565b5f9384526003016020525050604090205460ff1690565b5f612448878761243c8789614cbc565b610be161042b88614641565b90505b9695505050505050565b604080518082019091525f815260606020820152816124765f6107cb6126b2565b61082e6124816126b2565b5f8581526007919091016020526040902054600160801b900460881b6001600160881b031916610837565b604080518082019091525f815260606020820152816124cd5f6107cb6126b2565b5f6124d78461331f565b60050154146124f5576122d26124ec8461331f565b60050154610837565b6122d260806125038561331f565b600101546001600160801b0319911b16610837565b5f61244887876125288789614cbc565b86866126e8565b60605f61253b84611189565b805160405163acbade1f60e01b81526001600160401b039091166004820152600560f91b6024