{
  "contractName": "WitOracleRadonRequestFactoryTemplates",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "master",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "clone",
          "type": "address"
        }
      ],
      "name": "Cloned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cloned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dataRetrieveHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes15",
          "name": "_dataSourcesAggregatorHash",
          "type": "bytes15"
        },
        {
          "internalType": "bytes15",
          "name": "_crowdAttestationTallyHash",
          "type": "bytes15"
        }
      ],
      "name": "buildRadonRequestTemplate",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRequestTemplate",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dataRetrieveHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes15",
          "name": "_dataSourcesAggregatorHash",
          "type": "bytes15"
        },
        {
          "internalType": "bytes15",
          "name": "_crowdAttestationTallyHash",
          "type": "bytes15"
        }
      ],
      "name": "determineAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dataRetrieveHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes15",
          "name": "_dataSourcesAggregatorHash",
          "type": "bytes15"
        },
        {
          "internalType": "bytes15",
          "name": "_crowdAttestationTallyHash",
          "type": "bytes15"
        }
      ],
      "name": "initialize",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRequestTemplate",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getArgsCount",
      "outputs": [
        {
          "internalType": "uint8[]",
          "name": "",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCrowdAttestationTally",
      "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": [],
      "name": "getDataResultType",
      "outputs": [
        {
          "internalType": "enum Witnet.RadonDataTypes",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDataSources",
      "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": "_dataSources",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDataSourcesAggregator",
      "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": "string[][]",
          "name": "args",
          "type": "string[][]"
        }
      ],
      "name": "verifyRadonRequest",
      "outputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"master\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"clone\",\"type\":\"address\"}],\"name\":\"Cloned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"base\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_dataRetrieveHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes15\",\"name\":\"_dataSourcesAggregatorHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes15\",\"name\":\"_crowdAttestationTallyHash\",\"type\":\"bytes15\"}],\"name\":\"buildRadonRequestTemplate\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRequestTemplate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_dataRetrieveHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes15\",\"name\":\"_dataSourcesAggregatorHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes15\",\"name\":\"_crowdAttestationTallyHash\",\"type\":\"bytes15\"}],\"name\":\"determineAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getArgsCount\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCrowdAttestationTally\",\"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\":[],\"name\":\"getDataResultType\",\"outputs\":[{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDataSources\",\"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\":\"_dataSources\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDataSourcesAggregator\",\"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\":\"_dataRetrieveHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes15\",\"name\":\"_dataSourcesAggregatorHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes15\",\"name\":\"_crowdAttestationTallyHash\",\"type\":\"bytes15\"}],\"name\":\"initialize\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRequestTemplate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[][]\",\"name\":\"args\",\"type\":\"string[][]\"}],\"name\":\"verifyRadonRequest\",\"outputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"verifyRadonRequest(string[][])\":{\"details\":\"This method requires less gas than buildWitOracleRequest(string[][]), and it's usually preferred when data requests built out of this templateare intended to be used just once in lifetime.    \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"cloned()\":{\"notice\":\"Tells whether this contract is a clone of `self()`\"},\"getArgsCount()\":{\"notice\":\"=============================================================================================================== --- IWitOracleRadonRequestTemplate -------------------------------------------------------------------------------\"},\"initialized()\":{\"notice\":\"Tells whether a WitOracleRequest or a WitOracleRequestTemplate has been properly initialized.\"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"verifyRadonRequest(string[][])\":{\"notice\":\"Verifies into the bounded WitOracle's registry the actual bytecode  and RAD hash of the Witnet-compliant Radon Request that gets provably  made out of the data sources, aggregate and tally Radon Reducers that  compose this WitOracleRequestTemplate. While no WitOracleRequest instance is  actually constructed, the returned value will be accepted as a valid RAD hash on the witOracle() contract from now on.  Reverts if: - the ranks of passed array don't match either the number of this    template's data sources, or the number of required parameters by    each one of those.\"},\"witOracle()\":{\"notice\":\"Reference to the Witnet Request Board that all templates built out from this factory will refer to.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleRadonRequestFactoryTemplates.sol\":\"WitOracleRadonRequestFactoryTemplates\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"project:/contracts/core/base/WitOracleRadonRequestFactoryTemplates.sol\":{\"keccak256\":\"0xdfc8a2e736235013ed360e647654ddba7727e0ba8bfb9ab9e15290b1caedadb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bfc613a66d495a183134f587ccc3bdf8f99bd6ea35d5ba9dbcb407946d04ee7\",\"dweb:/ipfs/QmV1STny9ttBdQXkXyyZq8uYwUgDDpKzAxddjSbjX4zBS9\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleRadonRequestTemplate.sol\":{\"keccak256\":\"0xb3f8ec0cbd9cde19348cfd5f51480fb1a0ffe479bf38043ec385f9b4ef1a53f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90fa841ff07d95c96d2c0d0423845a49280fbbf287d3b00b56dfda8c7c8ea15c\",\"dweb:/ipfs/QmfD7cP4V4kuFjeNdXC8tDyrEJCbTAHCenJ7sC7f6cfxvP\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Clonable.sol\":{\"keccak256\":\"0x9a2dbc814306f60263fe736b88aeabc44fc241d3bed132e8dd76a3684dd825f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e665de5be06c9227c49f9466d24f798d4bed1a2db66d4d1368dcd9fc663c1b3a\",\"dweb:/ipfs/QmRjY2CHTGp1eyi9XPeTKr4WnPCzXbtk2285kdy2bJVCYA\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"../../interfaces/IWitOracle.sol\";\r\nimport \"../../interfaces/IWitOracleAppliance.sol\";\r\nimport \"../../interfaces/IWitOracleRadonRequestTemplate.sol\";\r\n\r\nimport \"../../patterns/Clonable.sol\";\r\n\r\nabstract contract WitOracleRadonRequestFactoryTemplates\r\n    is\r\n        Clonable,\r\n        IWitOracleAppliance,\r\n        IWitOracleRadonRequestTemplate \r\n{\r\n    function specs() virtual override public view returns (bytes4) {\r\n        return (\r\n            initialized()\r\n                ? type(IWitOracleRadonRequestTemplate).interfaceId\r\n                : bytes4(0xdccf450a) // bytes4(keccak256(abi.encodePacked(\"buildRadonRequestTemplate(bytes32[],bytes15,bytes15)\")))\r\n                    ^ bytes4(0x5613166e) // bytes4(keccak256(abi.encodePacked(\"determineAddress(bytes32[],bytes15,bytes15)\")))\r\n        );\r\n    }\r\n\r\n    /// @notice Reference to the Witnet Request Board that all templates built out from this factory will refer to.\r\n    address immutable public override(IWitOracleAppliance, IWitOracleRadonRequestTemplate) witOracle;\r\n\r\n    IWitOracleRadonRegistry internal immutable __witOracleRadonRegistry;\r\n    \r\n    struct Storage {\r\n        /// @notice Expected data result for all Radon Requests built out from this template.abi\r\n        Witnet.RadonDataTypes resultDataType;\r\n        /// @notice Parameters count for each data source.\r\n        uint8[] radonRetrieveArgsCount;\r\n        /// @notice Parameterized Radon retrievals.\r\n        bytes32[] radonRetrieveHashes;\r\n        /// @notice Data sources aggregator.\r\n        bytes16 radonAggregateHash;\r\n        /// @notice Crowd attestation tally.\r\n        bytes16 radonTallyHash;\r\n    }\r\n    Storage private __storage;\r\n\r\n    constructor(address _witOracle) {\r\n        _require(\r\n            _witOracle != address(0)\r\n                && _witOracle.code.length > 0, \r\n            \"inexistent Wit/Oracle\"\r\n        );\r\n        witOracle = _witOracle;\r\n        __witOracleRadonRegistry = IWitOracle(witOracle).registry();\r\n    }\r\n\r\n    function buildRadonRequestTemplate(\r\n            bytes32[] calldata _dataRetrieveHashes,\r\n            bytes15 _dataSourcesAggregatorHash,\r\n            bytes15 _crowdAttestationTallyHash\r\n        ) \r\n        virtual //override\r\n        external\r\n        notOnClones\r\n        returns (IWitOracleRadonRequestTemplate)\r\n    {\r\n        return WitOracleRadonRequestFactoryTemplates(\r\n            __cloneDeterministic(_determineSaltAndPepper(\r\n                _dataRetrieveHashes,\r\n                _dataSourcesAggregatorHash,\r\n                _crowdAttestationTallyHash\r\n            ))\r\n        ).initialize(\r\n            _dataRetrieveHashes,\r\n            _dataSourcesAggregatorHash,\r\n            _crowdAttestationTallyHash\r\n        );\r\n    }\r\n\r\n    function determineAddress(\r\n            bytes32[] calldata _dataRetrieveHashes,\r\n            bytes15 _dataSourcesAggregatorHash,\r\n            bytes15 _crowdAttestationTallyHash\r\n        )\r\n        virtual //override\r\n        external view \r\n        notOnClones\r\n        returns (address)\r\n    {\r\n        return address(uint160(uint256(keccak256(\r\n            abi.encodePacked(\r\n                bytes1(0xff),\r\n                address(this),\r\n                _determineSaltAndPepper(\r\n                    _dataRetrieveHashes,\r\n                    _dataSourcesAggregatorHash,\r\n                    _crowdAttestationTallyHash\r\n                ),\r\n                keccak256(_cloneBytecode())\r\n            )\r\n        ))));\r\n    }\r\n\r\n    function initialize(\r\n            bytes32[] calldata _dataRetrieveHashes,\r\n            bytes15 _dataSourcesAggregatorHash,\r\n            bytes15 _crowdAttestationTallyHash\r\n        )\r\n        virtual\r\n        public \r\n        initializer\r\n        returns (IWitOracleRadonRequestTemplate)\r\n    {\r\n        __witOracleRadonRegistry.isVerifiedRadonReducer(_dataSourcesAggregatorHash);\r\n        __witOracleRadonRegistry.isVerifiedRadonReducer(_crowdAttestationTallyHash);\r\n        uint _totalArgs;\r\n        Witnet.RadonDataTypes _resultDataType;\r\n        for (uint _ix = 0; _ix < _dataRetrieveHashes.length; ++ _ix) {\r\n            uint8 _argsCount = __witOracleRadonRegistry.lookupRadonRetrievalArgsCount(_dataRetrieveHashes[_ix]);\r\n            __storage.radonRetrieveArgsCount.push(_argsCount);\r\n            _totalArgs += _argsCount;\r\n            if (_ix == 0) {\r\n                _resultDataType = __witOracleRadonRegistry.lookupRadonRetrievalResultDataType(_dataRetrieveHashes[0]);\r\n            } else {\r\n                if (_resultDataType != __witOracleRadonRegistry.lookupRadonRetrievalResultDataType(_dataRetrieveHashes[_ix])) {\r\n                    _revert(\"mistyped data sources\");\r\n                }\r\n            }\r\n        }\r\n        _require(_totalArgs >= 1, \"unparameterized data sources\");\r\n        __storage.radonRetrieveHashes = _dataRetrieveHashes;\r\n        __storage.radonAggregateHash = _dataSourcesAggregatorHash;\r\n        __storage.radonTallyHash = _crowdAttestationTallyHash;\r\n        __storage.resultDataType = _resultDataType;\r\n        return IWitOracleRadonRequestTemplate(address(this));\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    /// --- Clonable implementation and override ----------------------------------------------------------------------\r\n\r\n    /// @notice Tells whether a WitOracleRequest or a WitOracleRequestTemplate has been properly initialized.\r\n    function initialized()\r\n        virtual override(Clonable)\r\n        public view\r\n        returns (bool)\r\n    {\r\n        return __storage.radonRetrieveHashes.length > 0;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitOracleRadonRequestTemplate -------------------------------------------------------------------------------\r\n\r\n    function getArgsCount()\r\n        virtual override\r\n        external view\r\n        onlyOnClones\r\n        returns (uint8[] memory)\r\n    {\r\n        return __storage.radonRetrieveArgsCount;\r\n    }\r\n    \r\n    function getCrowdAttestationTally()\r\n        virtual override\r\n        external view \r\n        onlyOnClones\r\n        returns (Witnet.RadonReducer memory)\r\n    {\r\n        return __witOracleRadonRegistry.lookupRadonReducer(\r\n            __storage.radonTallyHash\r\n        );\r\n    }\r\n\r\n    function getDataResultType()\r\n        virtual override\r\n        external view \r\n        onlyOnClones\r\n        returns (Witnet.RadonDataTypes)\r\n    {\r\n        return __storage.resultDataType;\r\n    }\r\n\r\n    function getDataSources()\r\n        virtual override\r\n        external view\r\n        onlyOnClones\r\n        returns (Witnet.RadonRetrieval[] memory _dataSources)\r\n    {\r\n        _dataSources = new Witnet.RadonRetrieval[](__storage.radonRetrieveHashes.length);\r\n        for (uint _ix = 0; _ix < _dataSources.length; ++ _ix) {\r\n            _dataSources[_ix] = __witOracleRadonRegistry.lookupRadonRetrieval(\r\n                __storage.radonRetrieveHashes[_ix]\r\n            );\r\n        }\r\n    }\r\n\r\n    function getDataSourcesAggregator() \r\n        virtual override\r\n        external view\r\n        onlyOnClones\r\n        returns (Witnet.RadonReducer memory)\r\n    {\r\n        return __witOracleRadonRegistry.lookupRadonReducer(\r\n            __storage.radonAggregateHash\r\n        );\r\n    }\r\n\r\n    function verifyRadonRequest(string[][] calldata args)\r\n        virtual override\r\n        external \r\n        onlyOnClones\r\n        returns (Witnet.RadonHash)\r\n    {\r\n        return __witOracleRadonRegistry.verifyRadonRequest(\r\n            __storage.radonRetrieveHashes,\r\n            args,\r\n            __storage.radonAggregateHash,\r\n            __storage.radonTallyHash\r\n        );\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- Internal methods ------------------------------------------------------------------------------------------\r\n\r\n    function _determineSaltAndPepper(\r\n            bytes32[] calldata _dataRetrieveHashes,\r\n            bytes15 _dataSourcesAggregatorHash,\r\n            bytes15 _crowdAttestationTallyHash\r\n        )\r\n        virtual internal view\r\n        returns (bytes32)\r\n    {\r\n        return keccak256(\r\n            abi.encodePacked(\r\n                __SELF,\r\n                _dataRetrieveHashes,\r\n                _dataSourcesAggregatorHash,\r\n                _crowdAttestationTallyHash\r\n            )\r\n        );\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\core\\base\\WitOracleRadonRequestFactoryTemplates.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/base/WitOracleRadonRequestFactoryTemplates.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "Clonable": [
        45518
      ],
      "IWitAppliance": [
        26514
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleAppliance": [
        26593
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitOracleRadonRequestTemplate": [
        27592
      ],
      "Initializable": [
        267
      ],
      "Secp256k1": [
        32535
      ],
      "WitOracleRadonRequestFactoryTemplates": [
        16677
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 16678,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16190,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:40"
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracle.sol",
        "file": "../../interfaces/IWitOracle.sol",
        "id": 16191,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16678,
        "sourceUnit": 26582,
        "src": "70:41:40",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleAppliance.sol",
        "file": "../../interfaces/IWitOracleAppliance.sol",
        "id": 16192,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16678,
        "sourceUnit": 26594,
        "src": "113:50:40",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleRadonRequestTemplate.sol",
        "file": "../../interfaces/IWitOracleRadonRequestTemplate.sol",
        "id": 16193,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16678,
        "sourceUnit": 27593,
        "src": "165:61:40",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Clonable.sol",
        "file": "../../patterns/Clonable.sol",
        "id": 16194,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 16678,
        "sourceUnit": 45519,
        "src": "230:37:40",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 16195,
              "name": "Clonable",
              "nameLocations": [
                "344:8:40"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45518,
              "src": "344:8:40"
            },
            "id": 16196,
            "nodeType": "InheritanceSpecifier",
            "src": "344:8:40"
          },
          {
            "baseName": {
              "id": 16197,
              "name": "IWitOracleAppliance",
              "nameLocations": [
                "363:19:40"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26593,
              "src": "363:19:40"
            },
            "id": 16198,
            "nodeType": "InheritanceSpecifier",
            "src": "363:19:40"
          },
          {
            "baseName": {
              "id": 16199,
              "name": "IWitOracleRadonRequestTemplate",
              "nameLocations": [
                "393:30:40"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27592,
              "src": "393:30:40"
            },
            "id": 16200,
            "nodeType": "InheritanceSpecifier",
            "src": "393:30:40"
          }
        ],
        "canonicalName": "WitOracleRadonRequestFactoryTemplates",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 16677,
        "linearizedBaseContracts": [
          16677,
          27592,
          26593,
          26514,
          45518,
          267
        ],
        "name": "WitOracleRadonRequestFactoryTemplates",
        "nameLocation": "289:37:40",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "baseFunctions": [
              26478
            ],
            "body": {
              "id": 16224,
              "nodeType": "Block",
              "src": "496:394:40",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 16206,
                            "name": "initialized",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              16521
                            ],
                            "referencedDeclaration": 16521,
                            "src": "529:11:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                              "typeString": "function () view returns (bool)"
                            }
                          },
                          "id": 16207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "529:13:40",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "id": 16220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "hexValue": "30786463636634353061",
                                "id": 16214,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "637:10:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3704571146_by_1",
                                  "typeString": "int_const 3704571146"
                                },
                                "value": "0xdccf450a"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_3704571146_by_1",
                                  "typeString": "int_const 3704571146"
                                }
                              ],
                              "id": 16213,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "630:6:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes4_$",
                                "typeString": "type(bytes4)"
                              },
                              "typeName": {
                                "id": 16212,
                                "name": "bytes4",
                                "nodeType": "ElementaryTypeName",
                                "src": "630:6:40",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16215,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "630:18:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "^",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30783536313331363665",
                                "id": 16218,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "774:10:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1444091502_by_1",
                                  "typeString": "int_const 1444091502"
                                },
                                "value": "0x5613166e"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1444091502_by_1",
                                  "typeString": "int_const 1444091502"
                                }
                              ],
                              "id": 16217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "767:6:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes4_$",
                                "typeString": "type(bytes4)"
                              },
                              "typeName": {
                                "id": 16216,
                                "name": "bytes4",
                                "nodeType": "ElementaryTypeName",
                                "src": "767:6:40",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "767:18:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "src": "630:155:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "id": 16221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "529:256:40",
                        "trueExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 16209,
                                "name": "IWitOracleRadonRequestTemplate",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27592,
                                "src": "567:30:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IWitOracleRadonRequestTemplate_$27592_$",
                                  "typeString": "type(contract IWitOracleRadonRequestTemplate)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_contract$_IWitOracleRadonRequestTemplate_$27592_$",
                                  "typeString": "type(contract IWitOracleRadonRequestTemplate)"
                                }
                              ],
                              "id": 16208,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967269,
                              "src": "562:4:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 16210,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "562:36:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracleRadonRequestTemplate_$27592",
                              "typeString": "type(contract IWitOracleRadonRequestTemplate)"
                            }
                          },
                          "id": 16211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "599:11:40",
                          "memberName": "interfaceId",
                          "nodeType": "MemberAccess",
                          "src": "562:48:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "id": 16222,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "514:368:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 16205,
                  "id": 16223,
                  "nodeType": "Return",
                  "src": "507:375:40"
                }
              ]
            },
            "functionSelector": "adb7c3f7",
            "id": 16225,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "specs",
            "nameLocation": "442:5:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16202,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "458:8:40"
            },
            "parameters": {
              "id": 16201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "447:2:40"
            },
            "returnParameters": {
              "id": 16205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16204,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16225,
                  "src": "488:6:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 16203,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "488:6:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "487:8:40"
            },
            "scope": 16677,
            "src": "433:457:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26592,
              27591
            ],
            "constant": false,
            "documentation": {
              "id": 16226,
              "nodeType": "StructuredDocumentation",
              "src": "898:111:40",
              "text": "@notice Reference to the Witnet Request Board that all templates built out from this factory will refer to."
            },
            "functionSelector": "1014d375",
            "id": 16231,
            "mutability": "immutable",
            "name": "witOracle",
            "nameLocation": "1102:9:40",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 16230,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 16228,
                  "name": "IWitOracleAppliance",
                  "nameLocations": [
                    "1049:19:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26593,
                  "src": "1049:19:40"
                },
                {
                  "id": 16229,
                  "name": "IWitOracleRadonRequestTemplate",
                  "nameLocations": [
                    "1070:30:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27592,
                  "src": "1070:30:40"
                }
              ],
              "src": "1040:61:40"
            },
            "scope": 16677,
            "src": "1015:96:40",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 16227,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1015:7:40",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 16234,
            "mutability": "immutable",
            "name": "__witOracleRadonRegistry",
            "nameLocation": "1163:24:40",
            "nodeType": "VariableDeclaration",
            "scope": 16677,
            "src": "1120:67:40",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
              "typeString": "contract IWitOracleRadonRegistry"
            },
            "typeName": {
              "id": 16233,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 16232,
                "name": "IWitOracleRadonRegistry",
                "nameLocations": [
                  "1120:23:40"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 27394,
                "src": "1120:23:40"
              },
              "referencedDeclaration": 27394,
              "src": "1120:23:40",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                "typeString": "contract IWitOracleRadonRegistry"
              }
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "WitOracleRadonRequestFactoryTemplates.Storage",
            "id": 16253,
            "members": [
              {
                "constant": false,
                "id": 16238,
                "mutability": "mutable",
                "name": "resultDataType",
                "nameLocation": "1346:14:40",
                "nodeType": "VariableDeclaration",
                "scope": 16253,
                "src": "1324:36:40",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                  "typeString": "enum Witnet.RadonDataTypes"
                },
                "typeName": {
                  "id": 16237,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16236,
                    "name": "Witnet.RadonDataTypes",
                    "nameLocations": [
                      "1324:6:40",
                      "1331:14:40"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 37720,
                    "src": "1324:21:40"
                  },
                  "referencedDeclaration": 37720,
                  "src": "1324:21:40",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16242,
                "mutability": "mutable",
                "name": "radonRetrieveArgsCount",
                "nameLocation": "1439:22:40",
                "nodeType": "VariableDeclaration",
                "scope": 16253,
                "src": "1431:30:40",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                  "typeString": "uint8[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16240,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1431:5:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 16241,
                  "nodeType": "ArrayTypeName",
                  "src": "1431:7:40",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                    "typeString": "uint8[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16246,
                "mutability": "mutable",
                "name": "radonRetrieveHashes",
                "nameLocation": "1535:19:40",
                "nodeType": "VariableDeclaration",
                "scope": 16253,
                "src": "1525:29:40",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16244,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1525:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16245,
                  "nodeType": "ArrayTypeName",
                  "src": "1525:9:40",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16249,
                "mutability": "mutable",
                "name": "radonAggregateHash",
                "nameLocation": "1619:18:40",
                "nodeType": "VariableDeclaration",
                "scope": 16253,
                "src": "1611:26:40",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes16",
                  "typeString": "bytes16"
                },
                "typeName": {
                  "id": 16248,
                  "name": "bytes16",
                  "nodeType": "ElementaryTypeName",
                  "src": "1611:7:40",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16252,
                "mutability": "mutable",
                "name": "radonTallyHash",
                "nameLocation": "1702:14:40",
                "nodeType": "VariableDeclaration",
                "scope": 16253,
                "src": "1694:22:40",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes16",
                  "typeString": "bytes16"
                },
                "typeName": {
                  "id": 16251,
                  "name": "bytes16",
                  "nodeType": "ElementaryTypeName",
                  "src": "1694:7:40",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes16",
                    "typeString": "bytes16"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Storage",
            "nameLocation": "1207:7:40",
            "nodeType": "StructDefinition",
            "scope": 16677,
            "src": "1200:524:40",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 16256,
            "mutability": "mutable",
            "name": "__storage",
            "nameLocation": "1746:9:40",
            "nodeType": "VariableDeclaration",
            "scope": 16677,
            "src": "1730:25:40",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Storage_$16253_storage",
              "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage"
            },
            "typeName": {
              "id": 16255,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 16254,
                "name": "Storage",
                "nameLocations": [
                  "1730:7:40"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 16253,
                "src": "1730:7:40"
              },
              "referencedDeclaration": 16253,
              "src": "1730:7:40",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Storage_$16253_storage_ptr",
                "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 16289,
              "nodeType": "Block",
              "src": "1796:266:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 16273,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 16267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16262,
                            "name": "_witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16258,
                            "src": "1830:10:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 16265,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1852:1:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 16264,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1844:7:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 16263,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1844:7:40",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1844:10:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1830:24:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 16272,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 16268,
                                "name": "_witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16258,
                                "src": "1875:10:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 16269,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1886:4:40",
                              "memberName": "code",
                              "nodeType": "MemberAccess",
                              "src": "1875:15:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16270,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1891:6:40",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "1875:22:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 16271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1900:1:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1875:26:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1830:71:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e6578697374656e74205769742f4f7261636c65",
                        "id": 16274,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1917:23:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8cdff1eb7e6010d2d924049735103f14da8b92458654dcf8c00fdf958d5d8b53",
                          "typeString": "literal_string \"inexistent Wit/Oracle\""
                        },
                        "value": "inexistent Wit/Oracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8cdff1eb7e6010d2d924049735103f14da8b92458654dcf8c00fdf958d5d8b53",
                          "typeString": "literal_string \"inexistent Wit/Oracle\""
                        }
                      ],
                      "id": 16261,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1807:8:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 16275,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1807:144:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16276,
                  "nodeType": "ExpressionStatement",
                  "src": "1807:144:40"
                },
                {
                  "expression": {
                    "id": 16279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16277,
                      "name": "witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16231,
                      "src": "1962:9:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16278,
                      "name": "_witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16258,
                      "src": "1974:10:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1962:22:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16280,
                  "nodeType": "ExpressionStatement",
                  "src": "1962:22:40"
                },
                {
                  "expression": {
                    "id": 16287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16281,
                      "name": "__witOracleRadonRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16234,
                      "src": "1995:24:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                        "typeString": "contract IWitOracleRadonRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "arguments": [
                            {
                              "id": 16283,
                              "name": "witOracle",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16231,
                              "src": "2033:9:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 16282,
                            "name": "IWitOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26581,
                            "src": "2022:10:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                              "typeString": "type(contract IWitOracle)"
                            }
                          },
                          "id": 16284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2022:21:40",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWitOracle_$26581",
                            "typeString": "contract IWitOracle"
                          }
                        },
                        "id": 16285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2044:8:40",
                        "memberName": "registry",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26580,
                        "src": "2022:30:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                          "typeString": "function () view external returns (contract IWitOracleRadonRegistry)"
                        }
                      },
                      "id": 16286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2022:32:40",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                        "typeString": "contract IWitOracleRadonRegistry"
                      }
                    },
                    "src": "1995:59:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                      "typeString": "contract IWitOracleRadonRegistry"
                    }
                  },
                  "id": 16288,
                  "nodeType": "ExpressionStatement",
                  "src": "1995:59:40"
                }
              ]
            },
            "id": 16290,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16258,
                  "mutability": "mutable",
                  "name": "_witOracle",
                  "nameLocation": "1784:10:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16290,
                  "src": "1776:18:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16257,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1776:7:40",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1775:20:40"
            },
            "returnParameters": {
              "id": 16260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1796:0:40"
            },
            "scope": 16677,
            "src": "1764:298:40",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16320,
              "nodeType": "Block",
              "src": "2390:415:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16315,
                        "name": "_dataRetrieveHashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16293,
                        "src": "2685:19:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 16316,
                        "name": "_dataSourcesAggregatorHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16295,
                        "src": "2719:26:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      },
                      {
                        "id": 16317,
                        "name": "_crowdAttestationTallyHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16297,
                        "src": "2760:26:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        },
                        {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 16308,
                                    "name": "_dataRetrieveHashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16293,
                                    "src": "2523:19:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  {
                                    "id": 16309,
                                    "name": "_dataSourcesAggregatorHash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16295,
                                    "src": "2561:26:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes15",
                                      "typeString": "bytes15"
                                    }
                                  },
                                  {
                                    "id": 16310,
                                    "name": "_crowdAttestationTallyHash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16297,
                                    "src": "2606:26:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes15",
                                      "typeString": "bytes15"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes15",
                                      "typeString": "bytes15"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes15",
                                      "typeString": "bytes15"
                                    }
                                  ],
                                  "id": 16307,
                                  "name": "_determineSaltAndPepper",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16676,
                                  "src": "2481:23:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes15_$_t_bytes15_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes32[] calldata,bytes15,bytes15) view returns (bytes32)"
                                  }
                                },
                                "id": 16311,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2481:166:40",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 16306,
                              "name": "__cloneDeterministic",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45486,
                              "src": "2460:20:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) returns (address)"
                              }
                            },
                            "id": 16312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2460:188:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 16305,
                          "name": "WitOracleRadonRequestFactoryTemplates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16677,
                          "src": "2408:37:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitOracleRadonRequestFactoryTemplates_$16677_$",
                            "typeString": "type(contract WitOracleRadonRequestFactoryTemplates)"
                          }
                        },
                        "id": 16313,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2408:251:40",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
                          "typeString": "contract WitOracleRadonRequestFactoryTemplates"
                        }
                      },
                      "id": 16314,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2660:10:40",
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16506,
                      "src": "2408:262:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes15_$_t_bytes15_$returns$_t_contract$_IWitOracleRadonRequestTemplate_$27592_$",
                        "typeString": "function (bytes32[] memory,bytes15,bytes15) external returns (contract IWitOracleRadonRequestTemplate)"
                      }
                    },
                    "id": 16318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2408:389:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                      "typeString": "contract IWitOracleRadonRequestTemplate"
                    }
                  },
                  "functionReturnParameters": 16304,
                  "id": 16319,
                  "nodeType": "Return",
                  "src": "2401:396:40"
                }
              ]
            },
            "functionSelector": "dccf450a",
            "id": 16321,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16300,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16299,
                  "name": "notOnClones",
                  "nameLocations": [
                    "2323:11:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45382,
                  "src": "2323:11:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "2323:11:40"
              }
            ],
            "name": "buildRadonRequestTemplate",
            "nameLocation": "2079:25:40",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16293,
                  "mutability": "mutable",
                  "name": "_dataRetrieveHashes",
                  "nameLocation": "2138:19:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16321,
                  "src": "2119:38:40",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16291,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2119:7:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16292,
                    "nodeType": "ArrayTypeName",
                    "src": "2119:9:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16295,
                  "mutability": "mutable",
                  "name": "_dataSourcesAggregatorHash",
                  "nameLocation": "2180:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16321,
                  "src": "2172:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16294,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "2172:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16297,
                  "mutability": "mutable",
                  "name": "_crowdAttestationTallyHash",
                  "nameLocation": "2229:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16321,
                  "src": "2221:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16296,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "2221:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2104:162:40"
            },
            "returnParameters": {
              "id": 16304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16303,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16321,
                  "src": "2353:30:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                    "typeString": "contract IWitOracleRadonRequestTemplate"
                  },
                  "typeName": {
                    "id": 16302,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16301,
                      "name": "IWitOracleRadonRequestTemplate",
                      "nameLocations": [
                        "2353:30:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27592,
                      "src": "2353:30:40"
                    },
                    "referencedDeclaration": 27592,
                    "src": "2353:30:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                      "typeString": "contract IWitOracleRadonRequestTemplate"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2352:32:40"
            },
            "scope": 16677,
            "src": "2070:735:40",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16367,
              "nodeType": "Block",
              "src": "3106:429:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30786666",
                                            "id": 16346,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "3214:4:40",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            },
                                            "value": "0xff"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            }
                                          ],
                                          "id": 16345,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3207:6:40",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 16344,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3207:6:40",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 16347,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3207:12:40",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "id": 16350,
                                            "name": "this",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967268,
                                            "src": "3246:4:40",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
                                              "typeString": "contract WitOracleRadonRequestFactoryTemplates"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
                                              "typeString": "contract WitOracleRadonRequestFactoryTemplates"
                                            }
                                          ],
                                          "id": 16349,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "3238:7:40",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": {
                                            "id": 16348,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "3238:7:40",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 16351,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3238:13:40",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "id": 16353,
                                            "name": "_dataRetrieveHashes",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 16324,
                                            "src": "3316:19:40",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                              "typeString": "bytes32[] calldata"
                                            }
                                          },
                                          {
                                            "id": 16354,
                                            "name": "_dataSourcesAggregatorHash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 16326,
                                            "src": "3358:26:40",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes15",
                                              "typeString": "bytes15"
                                            }
                                          },
                                          {
                                            "id": 16355,
                                            "name": "_crowdAttestationTallyHash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 16328,
                                            "src": "3407:26:40",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes15",
                                              "typeString": "bytes15"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                              "typeString": "bytes32[] calldata"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes15",
                                              "typeString": "bytes15"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes15",
                                              "typeString": "bytes15"
                                            }
                                          ],
                                          "id": 16352,
                                          "name": "_determineSaltAndPepper",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16676,
                                          "src": "3270:23:40",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes15_$_t_bytes15_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes32[] calldata,bytes15,bytes15) view returns (bytes32)"
                                          }
                                        },
                                        "id": 16356,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3270:182:40",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "id": 16358,
                                              "name": "_cloneBytecode",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 45504,
                                              "src": "3481:14:40",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function () view returns (bytes memory)"
                                              }
                                            },
                                            "id": 16359,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "3481:16:40",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 16357,
                                          "name": "keccak256",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967288,
                                          "src": "3471:9:40",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes memory) pure returns (bytes32)"
                                          }
                                        },
                                        "id": 16360,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3471:27:40",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "expression": {
                                        "id": 16342,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4294967295,
                                        "src": "3172:3:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 16343,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "3176:12:40",
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "src": "3172:16:40",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 16361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3172:341:40",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 16341,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967288,
                                  "src": "3148:9:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 16362,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3148:376:40",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 16340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3140:7:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 16339,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3140:7:40",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16363,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3140:385:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 16338,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3132:7:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": {
                            "id": 16337,
                            "name": "uint160",
                            "nodeType": "ElementaryTypeName",
                            "src": "3132:7:40",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 16364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3132:394:40",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 16336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3124:7:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 16335,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3124:7:40",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16365,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3124:403:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 16334,
                  "id": 16366,
                  "nodeType": "Return",
                  "src": "3117:410:40"
                }
              ]
            },
            "functionSelector": "5613166e",
            "id": 16368,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16331,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16330,
                  "name": "notOnClones",
                  "nameLocations": [
                    "3062:11:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45382,
                  "src": "3062:11:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "3062:11:40"
              }
            ],
            "name": "determineAddress",
            "nameLocation": "2822:16:40",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16324,
                  "mutability": "mutable",
                  "name": "_dataRetrieveHashes",
                  "nameLocation": "2872:19:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16368,
                  "src": "2853:38:40",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16322,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2853:7:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16323,
                    "nodeType": "ArrayTypeName",
                    "src": "2853:9:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16326,
                  "mutability": "mutable",
                  "name": "_dataSourcesAggregatorHash",
                  "nameLocation": "2914:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16368,
                  "src": "2906:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16325,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "2906:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16328,
                  "mutability": "mutable",
                  "name": "_crowdAttestationTallyHash",
                  "nameLocation": "2963:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16368,
                  "src": "2955:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16327,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "2955:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2838:162:40"
            },
            "returnParameters": {
              "id": 16334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16333,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16368,
                  "src": "3092:7:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16332,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3092:7:40",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3091:9:40"
            },
            "scope": 16677,
            "src": "2813:722:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16505,
              "nodeType": "Block",
              "src": "3835:1321:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16386,
                        "name": "_dataSourcesAggregatorHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16373,
                        "src": "3894:26:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      ],
                      "expression": {
                        "id": 16383,
                        "name": "__witOracleRadonRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16234,
                        "src": "3846:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 16385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3871:22:40",
                      "memberName": "isVerifiedRadonReducer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27168,
                      "src": "3846:47:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32) view external returns (bool)"
                      }
                    },
                    "id": 16387,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3846:75:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16388,
                  "nodeType": "ExpressionStatement",
                  "src": "3846:75:40"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16392,
                        "name": "_crowdAttestationTallyHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16375,
                        "src": "3980:26:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes15",
                          "typeString": "bytes15"
                        }
                      ],
                      "expression": {
                        "id": 16389,
                        "name": "__witOracleRadonRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16234,
                        "src": "3932:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 16391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3957:22:40",
                      "memberName": "isVerifiedRadonReducer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27168,
                      "src": "3932:47:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32) view external returns (bool)"
                      }
                    },
                    "id": 16393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3932:75:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16394,
                  "nodeType": "ExpressionStatement",
                  "src": "3932:75:40"
                },
                {
                  "assignments": [
                    16396
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16396,
                      "mutability": "mutable",
                      "name": "_totalArgs",
                      "nameLocation": "4023:10:40",
                      "nodeType": "VariableDeclaration",
                      "scope": 16505,
                      "src": "4018:15:40",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 16395,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4018:4:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16397,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4018:15:40"
                },
                {
                  "assignments": [
                    16402
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16402,
                      "mutability": "mutable",
                      "name": "_resultDataType",
                      "nameLocation": "4066:15:40",
                      "nodeType": "VariableDeclaration",
                      "scope": 16505,
                      "src": "4044:37:40",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      },
                      "typeName": {
                        "id": 16401,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 16400,
                          "name": "Witnet.RadonDataTypes",
                          "nameLocations": [
                            "4044:6:40",
                            "4051:14:40"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 37720,
                          "src": "4044:21:40"
                        },
                        "referencedDeclaration": 37720,
                        "src": "4044:21:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                          "typeString": "enum Witnet.RadonDataTypes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16403,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4044:37:40"
                },
                {
                  "body": {
                    "id": 16465,
                    "nodeType": "Block",
                    "src": "4153:618:40",
                    "statements": [
                      {
                        "assignments": [
                          16416
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 16416,
                            "mutability": "mutable",
                            "name": "_argsCount",
                            "nameLocation": "4174:10:40",
                            "nodeType": "VariableDeclaration",
                            "scope": 16465,
                            "src": "4168:16:40",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 16415,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "4168:5:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 16423,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 16419,
                                "name": "_dataRetrieveHashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16371,
                                "src": "4242:19:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 16421,
                              "indexExpression": {
                                "id": 16420,
                                "name": "_ix",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16405,
                                "src": "4262:3:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4242:24:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "id": 16417,
                              "name": "__witOracleRadonRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16234,
                              "src": "4187:24:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                                "typeString": "contract IWitOracleRadonRegistry"
                              }
                            },
                            "id": 16418,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4212:29:40",
                            "memberName": "lookupRadonRetrievalArgsCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 27269,
                            "src": "4187:54:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint8_$",
                              "typeString": "function (bytes32) view external returns (uint8)"
                            }
                          },
                          "id": 16422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4187:80:40",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4168:99:40"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 16429,
                              "name": "_argsCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16416,
                              "src": "4320:10:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 16424,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16256,
                                "src": "4282:9:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$16253_storage",
                                  "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                                }
                              },
                              "id": 16427,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4292:22:40",
                              "memberName": "radonRetrieveArgsCount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16242,
                              "src": "4282:32:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint8_$dyn_storage",
                                "typeString": "uint8[] storage ref"
                              }
                            },
                            "id": 16428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4315:4:40",
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "4282:37:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint8_$dyn_storage_ptr_$_t_uint8_$returns$__$attached_to$_t_array$_t_uint8_$dyn_storage_ptr_$",
                              "typeString": "function (uint8[] storage pointer,uint8)"
                            }
                          },
                          "id": 16430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4282:49:40",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 16431,
                        "nodeType": "ExpressionStatement",
                        "src": "4282:49:40"
                      },
                      {
                        "expression": {
                          "id": 16434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 16432,
                            "name": "_totalArgs",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16396,
                            "src": "4346:10:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "id": 16433,
                            "name": "_argsCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16416,
                            "src": "4360:10:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "4346:24:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16435,
                        "nodeType": "ExpressionStatement",
                        "src": "4346:24:40"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 16438,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16436,
                            "name": "_ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16405,
                            "src": "4389:3:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 16437,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4396:1:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4389:8:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 16463,
                          "nodeType": "Block",
                          "src": "4541:219:40",
                          "statements": [
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                  "typeString": "enum Witnet.RadonDataTypes"
                                },
                                "id": 16456,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 16449,
                                  "name": "_resultDataType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16402,
                                  "src": "4564:15:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                    "typeString": "enum Witnet.RadonDataTypes"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "arguments": [
                                    {
                                      "baseExpression": {
                                        "id": 16452,
                                        "name": "_dataRetrieveHashes",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16371,
                                        "src": "4643:19:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                          "typeString": "bytes32[] calldata"
                                        }
                                      },
                                      "id": 16454,
                                      "indexExpression": {
                                        "id": 16453,
                                        "name": "_ix",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16405,
                                        "src": "4663:3:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "4643:24:40",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "expression": {
                                      "id": 16450,
                                      "name": "__witOracleRadonRegistry",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 16234,
                                      "src": "4583:24:40",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                                        "typeString": "contract IWitOracleRadonRegistry"
                                      }
                                    },
                                    "id": 16451,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "4608:34:40",
                                    "memberName": "lookupRadonRetrievalResultDataType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 27278,
                                    "src": "4583:59:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_enum$_RadonDataTypes_$37720_$",
                                      "typeString": "function (bytes32) view external returns (enum Witnet.RadonDataTypes)"
                                    }
                                  },
                                  "id": 16455,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4583:85:40",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                    "typeString": "enum Witnet.RadonDataTypes"
                                  }
                                },
                                "src": "4564:104:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 16462,
                              "nodeType": "IfStatement",
                              "src": "4560:185:40",
                              "trueBody": {
                                "id": 16461,
                                "nodeType": "Block",
                                "src": "4670:75:40",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "hexValue": "6d69737479706564206461746120736f7572636573",
                                          "id": 16458,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4701:23:40",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_3f3187f168c2cb42f2d40888bf27ed9e01b38ebe3d7fd79f3bf6eeee1d632a5d",
                                            "typeString": "literal_string \"mistyped data sources\""
                                          },
                                          "value": "mistyped data sources"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_stringliteral_3f3187f168c2cb42f2d40888bf27ed9e01b38ebe3d7fd79f3bf6eeee1d632a5d",
                                            "typeString": "literal_string \"mistyped data sources\""
                                          }
                                        ],
                                        "id": 16457,
                                        "name": "_revert",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 26513,
                                        "src": "4693:7:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                          "typeString": "function (string memory) view"
                                        }
                                      },
                                      "id": 16459,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4693:32:40",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 16460,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4693:32:40"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "id": 16464,
                        "nodeType": "IfStatement",
                        "src": "4385:375:40",
                        "trueBody": {
                          "id": 16448,
                          "nodeType": "Block",
                          "src": "4399:136:40",
                          "statements": [
                            {
                              "expression": {
                                "id": 16446,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 16439,
                                  "name": "_resultDataType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16402,
                                  "src": "4418:15:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                    "typeString": "enum Witnet.RadonDataTypes"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "baseExpression": {
                                        "id": 16442,
                                        "name": "_dataRetrieveHashes",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16371,
                                        "src": "4496:19:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                          "typeString": "bytes32[] calldata"
                                        }
                                      },
                                      "id": 16444,
                                      "indexExpression": {
                                        "hexValue": "30",
                                        "id": 16443,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "4516:1:40",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "4496:22:40",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "expression": {
                                      "id": 16440,
                                      "name": "__witOracleRadonRegistry",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 16234,
                                      "src": "4436:24:40",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                                        "typeString": "contract IWitOracleRadonRegistry"
                                      }
                                    },
                                    "id": 16441,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "4461:34:40",
                                    "memberName": "lookupRadonRetrievalResultDataType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 27278,
                                    "src": "4436:59:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_enum$_RadonDataTypes_$37720_$",
                                      "typeString": "function (bytes32) view external returns (enum Witnet.RadonDataTypes)"
                                    }
                                  },
                                  "id": 16445,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4436:83:40",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                    "typeString": "enum Witnet.RadonDataTypes"
                                  }
                                },
                                "src": "4418:101:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                                  "typeString": "enum Witnet.RadonDataTypes"
                                }
                              },
                              "id": 16447,
                              "nodeType": "ExpressionStatement",
                              "src": "4418:101:40"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16408,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16405,
                      "src": "4111:3:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 16409,
                        "name": "_dataRetrieveHashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16371,
                        "src": "4117:19:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 16410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4137:6:40",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4117:26:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4111:32:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16466,
                  "initializationExpression": {
                    "assignments": [
                      16405
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 16405,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "4102:3:40",
                        "nodeType": "VariableDeclaration",
                        "scope": 16466,
                        "src": "4097:8:40",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16404,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4097:4:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 16407,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 16406,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4108:1:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4097:12:40"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 16413,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "4145:6:40",
                      "subExpression": {
                        "id": 16412,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16405,
                        "src": "4148:3:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16414,
                    "nodeType": "ExpressionStatement",
                    "src": "4145:6:40"
                  },
                  "nodeType": "ForStatement",
                  "src": "4092:679:40"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 16470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 16468,
                          "name": "_totalArgs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16396,
                          "src": "4790:10:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 16469,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4804:1:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "4790:15:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e706172616d65746572697a6564206461746120736f7572636573",
                        "id": 16471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4807:30:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_23eba3a897069e16db6aa342566c86442270edde33bf88104d71b7a708d79757",
                          "typeString": "literal_string \"unparameterized data sources\""
                        },
                        "value": "unparameterized data sources"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_23eba3a897069e16db6aa342566c86442270edde33bf88104d71b7a708d79757",
                          "typeString": "literal_string \"unparameterized data sources\""
                        }
                      ],
                      "id": 16467,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "4781:8:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 16472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4781:57:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16473,
                  "nodeType": "ExpressionStatement",
                  "src": "4781:57:40"
                },
                {
                  "expression": {
                    "id": 16478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 16474,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16256,
                        "src": "4849:9:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$16253_storage",
                          "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                        }
                      },
                      "id": 16476,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "4859:19:40",
                      "memberName": "radonRetrieveHashes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16246,
                      "src": "4849:29:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16477,
                      "name": "_dataRetrieveHashes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16371,
                      "src": "4881:19:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                        "typeString": "bytes32[] calldata"
                      }
                    },
                    "src": "4849:51:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                      "typeString": "bytes32[] storage ref"
                    }
                  },
                  "id": 16479,
                  "nodeType": "ExpressionStatement",
                  "src": "4849:51:40"
                },
                {
                  "expression": {
                    "id": 16484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 16480,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16256,
                        "src": "4911:9:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$16253_storage",
                          "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                        }
                      },
                      "id": 16482,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "4921:18:40",
                      "memberName": "radonAggregateHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16249,
                      "src": "4911:28:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes16",
                        "typeString": "bytes16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16483,
                      "name": "_dataSourcesAggregatorHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16373,
                      "src": "4942:26:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes15",
                        "typeString": "bytes15"
                      }
                    },
                    "src": "4911:57:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes16",
                      "typeString": "bytes16"
                    }
                  },
                  "id": 16485,
                  "nodeType": "ExpressionStatement",
                  "src": "4911:57:40"
                },
                {
                  "expression": {
                    "id": 16490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 16486,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16256,
                        "src": "4979:9:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$16253_storage",
                          "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                        }
                      },
                      "id": 16488,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "4989:14:40",
                      "memberName": "radonTallyHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16252,
                      "src": "4979:24:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes16",
                        "typeString": "bytes16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16489,
                      "name": "_crowdAttestationTallyHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16375,
                      "src": "5006:26:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes15",
                        "typeString": "bytes15"
                      }
                    },
                    "src": "4979:53:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes16",
                      "typeString": "bytes16"
                    }
                  },
                  "id": 16491,
                  "nodeType": "ExpressionStatement",
                  "src": "4979:53:40"
                },
                {
                  "expression": {
                    "id": 16496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 16492,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16256,
                        "src": "5043:9:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$16253_storage",
                          "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                        }
                      },
                      "id": 16494,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "5053:14:40",
                      "memberName": "resultDataType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16238,
                      "src": "5043:24:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16495,
                      "name": "_resultDataType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16402,
                      "src": "5070:15:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                        "typeString": "enum Witnet.RadonDataTypes"
                      }
                    },
                    "src": "5043:42:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "id": 16497,
                  "nodeType": "ExpressionStatement",
                  "src": "5043:42:40"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 16501,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "5142:4:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
                              "typeString": "contract WitOracleRadonRequestFactoryTemplates"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WitOracleRadonRequestFactoryTemplates_$16677",
                              "typeString": "contract WitOracleRadonRequestFactoryTemplates"
                            }
                          ],
                          "id": 16500,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5134:7:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 16499,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5134:7:40",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 16502,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5134:13:40",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 16498,
                      "name": "IWitOracleRadonRequestTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27592,
                      "src": "5103:30:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IWitOracleRadonRequestTemplate_$27592_$",
                        "typeString": "type(contract IWitOracleRadonRequestTemplate)"
                      }
                    },
                    "id": 16503,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5103:45:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                      "typeString": "contract IWitOracleRadonRequestTemplate"
                    }
                  },
                  "functionReturnParameters": 16382,
                  "id": 16504,
                  "nodeType": "Return",
                  "src": "5096:52:40"
                }
              ]
            },
            "functionSelector": "11f46c76",
            "id": 16506,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16378,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16377,
                  "name": "initializer",
                  "nameLocations": [
                    "3768:11:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 107,
                  "src": "3768:11:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "3768:11:40"
              }
            ],
            "name": "initialize",
            "nameLocation": "3552:10:40",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16371,
                  "mutability": "mutable",
                  "name": "_dataRetrieveHashes",
                  "nameLocation": "3596:19:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16506,
                  "src": "3577:38:40",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16369,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "3577:7:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16370,
                    "nodeType": "ArrayTypeName",
                    "src": "3577:9:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16373,
                  "mutability": "mutable",
                  "name": "_dataSourcesAggregatorHash",
                  "nameLocation": "3638:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16506,
                  "src": "3630:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16372,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "3630:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16375,
                  "mutability": "mutable",
                  "name": "_crowdAttestationTallyHash",
                  "nameLocation": "3687:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16506,
                  "src": "3679:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16374,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "3679:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3562:162:40"
            },
            "returnParameters": {
              "id": 16382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16381,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16506,
                  "src": "3798:30:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                    "typeString": "contract IWitOracleRadonRequestTemplate"
                  },
                  "typeName": {
                    "id": 16380,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16379,
                      "name": "IWitOracleRadonRequestTemplate",
                      "nameLocations": [
                        "3798:30:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27592,
                      "src": "3798:30:40"
                    },
                    "referencedDeclaration": 27592,
                    "src": "3798:30:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRequestTemplate_$27592",
                      "typeString": "contract IWitOracleRadonRequestTemplate"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3797:32:40"
            },
            "scope": 16677,
            "src": "3543:1613:40",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              45420
            ],
            "body": {
              "id": 16520,
              "nodeType": "Block",
              "src": "5630:66:40",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 16514,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "5648:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16515,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5658:19:40",
                        "memberName": "radonRetrieveHashes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16246,
                        "src": "5648:29:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 16516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5678:6:40",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5648:36:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 16517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5687:1:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5648:40:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16513,
                  "id": 16519,
                  "nodeType": "Return",
                  "src": "5641:47:40"
                }
              ]
            },
            "documentation": {
              "id": 16507,
              "nodeType": "StructuredDocumentation",
              "src": "5410:105:40",
              "text": "@notice Tells whether a WitOracleRequest or a WitOracleRequestTemplate has been properly initialized."
            },
            "functionSelector": "158ef93e",
            "id": 16521,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialized",
            "nameLocation": "5530:11:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16510,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 16509,
                  "name": "Clonable",
                  "nameLocations": [
                    "5570:8:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45518,
                  "src": "5570:8:40"
                }
              ],
              "src": "5561:18:40"
            },
            "parameters": {
              "id": 16508,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5541:2:40"
            },
            "returnParameters": {
              "id": 16513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16512,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16521,
                  "src": "5619:4:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16511,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5619:4:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5618:6:40"
            },
            "scope": 16677,
            "src": "5521:175:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27550
            ],
            "body": {
              "id": 16534,
              "nodeType": "Block",
              "src": "6087:58:40",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 16531,
                      "name": "__storage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16256,
                      "src": "6105:9:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$16253_storage",
                        "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                      }
                    },
                    "id": 16532,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "6115:22:40",
                    "memberName": "radonRetrieveArgsCount",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 16242,
                    "src": "6105:32:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage",
                      "typeString": "uint8[] storage ref"
                    }
                  },
                  "functionReturnParameters": 16530,
                  "id": 16533,
                  "nodeType": "Return",
                  "src": "6098:39:40"
                }
              ]
            },
            "documentation": {
              "id": 16522,
              "nodeType": "StructuredDocumentation",
              "src": "5706:241:40",
              "text": "===============================================================================================================\n --- IWitOracleRadonRequestTemplate -------------------------------------------------------------------------------"
            },
            "functionSelector": "13620d8f",
            "id": 16535,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16526,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16525,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "6035:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "6035:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "6035:12:40"
              }
            ],
            "name": "getArgsCount",
            "nameLocation": "5962:12:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16524,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5994:8:40"
            },
            "parameters": {
              "id": 16523,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5974:2:40"
            },
            "returnParameters": {
              "id": 16530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16529,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16535,
                  "src": "6066:14:40",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16527,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "6066:5:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 16528,
                    "nodeType": "ArrayTypeName",
                    "src": "6066:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6065:16:40"
            },
            "scope": 16677,
            "src": "5953:192:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27556
            ],
            "body": {
              "id": 16550,
              "nodeType": "Block",
              "src": "6316:119:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 16546,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "6392:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16547,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6402:14:40",
                        "memberName": "radonTallyHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16252,
                        "src": "6392:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      ],
                      "expression": {
                        "id": 16544,
                        "name": "__witOracleRadonRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16234,
                        "src": "6334:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 16545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6359:18:40",
                      "memberName": "lookupRadonReducer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27194,
                      "src": "6334:43:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_RadonReducer_$37748_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct Witnet.RadonReducer memory)"
                      }
                    },
                    "id": 16548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6334:93:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                      "typeString": "struct Witnet.RadonReducer memory"
                    }
                  },
                  "functionReturnParameters": 16543,
                  "id": 16549,
                  "nodeType": "Return",
                  "src": "6327:100:40"
                }
              ]
            },
            "functionSelector": "0f0adf5b",
            "id": 16551,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16539,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16538,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "6252:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "6252:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "6252:12:40"
              }
            ],
            "name": "getCrowdAttestationTally",
            "nameLocation": "6166:24:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16537,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6210:8:40"
            },
            "parameters": {
              "id": 16536,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6190:2:40"
            },
            "returnParameters": {
              "id": 16543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16542,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16551,
                  "src": "6283:26:40",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  },
                  "typeName": {
                    "id": 16541,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16540,
                      "name": "Witnet.RadonReducer",
                      "nameLocations": [
                        "6283:6:40",
                        "6290:12:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37748,
                      "src": "6283:19:40"
                    },
                    "referencedDeclaration": 37748,
                    "src": "6283:19:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                      "typeString": "struct Witnet.RadonReducer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6282:28:40"
            },
            "scope": 16677,
            "src": "6157:278:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27562
            ],
            "body": {
              "id": 16563,
              "nodeType": "Block",
              "src": "6590:50:40",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 16560,
                      "name": "__storage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16256,
                      "src": "6608:9:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$16253_storage",
                        "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                      }
                    },
                    "id": 16561,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "6618:14:40",
                    "memberName": "resultDataType",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 16238,
                    "src": "6608:24:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "functionReturnParameters": 16559,
                  "id": 16562,
                  "nodeType": "Return",
                  "src": "6601:31:40"
                }
              ]
            },
            "functionSelector": "7f2b1d77",
            "id": 16564,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16555,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16554,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "6531:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "6531:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "6531:12:40"
              }
            ],
            "name": "getDataResultType",
            "nameLocation": "6452:17:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16553,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6489:8:40"
            },
            "parameters": {
              "id": 16552,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6469:2:40"
            },
            "returnParameters": {
              "id": 16559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16558,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16564,
                  "src": "6562:21:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                    "typeString": "enum Witnet.RadonDataTypes"
                  },
                  "typeName": {
                    "id": 16557,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16556,
                      "name": "Witnet.RadonDataTypes",
                      "nameLocations": [
                        "6562:6:40",
                        "6569:14:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37720,
                      "src": "6562:21:40"
                    },
                    "referencedDeclaration": 37720,
                    "src": "6562:21:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                      "typeString": "enum Witnet.RadonDataTypes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6561:23:40"
            },
            "scope": 16677,
            "src": "6443:197:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27569
            ],
            "body": {
              "id": 16610,
              "nodeType": "Block",
              "src": "6813:323:40",
              "statements": [
                {
                  "expression": {
                    "id": 16583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16574,
                      "name": "_dataSources",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16572,
                      "src": "6824:12:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct Witnet.RadonRetrieval memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "expression": {
                              "id": 16579,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16256,
                              "src": "6867:9:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$16253_storage",
                                "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                              }
                            },
                            "id": 16580,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6877:19:40",
                            "memberName": "radonRetrieveHashes",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16246,
                            "src": "6867:29:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 16581,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "6897:6:40",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "6867:36:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 16578,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6839:27:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct Witnet.RadonRetrieval memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 16576,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 16575,
                              "name": "Witnet.RadonRetrieval",
                              "nameLocations": [
                                "6843:6:40",
                                "6850:14:40"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 37795,
                              "src": "6843:21:40"
                            },
                            "referencedDeclaration": 37795,
                            "src": "6843:21:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonRetrieval_$37795_storage_ptr",
                              "typeString": "struct Witnet.RadonRetrieval"
                            }
                          },
                          "id": 16577,
                          "nodeType": "ArrayTypeName",
                          "src": "6843:23:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_storage_$dyn_storage_ptr",
                            "typeString": "struct Witnet.RadonRetrieval[]"
                          }
                        }
                      },
                      "id": 16582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6839:65:40",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct Witnet.RadonRetrieval memory[] memory"
                      }
                    },
                    "src": "6824:80:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct Witnet.RadonRetrieval memory[] memory"
                    }
                  },
                  "id": 16584,
                  "nodeType": "ExpressionStatement",
                  "src": "6824:80:40"
                },
                {
                  "body": {
                    "id": 16608,
                    "nodeType": "Block",
                    "src": "6969:160:40",
                    "statements": [
                      {
                        "expression": {
                          "id": 16606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 16596,
                              "name": "_dataSources",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16572,
                              "src": "6984:12:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Witnet.RadonRetrieval memory[] memory"
                              }
                            },
                            "id": 16598,
                            "indexExpression": {
                              "id": 16597,
                              "name": "_ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16586,
                              "src": "6997:3:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6984:17:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonRetrieval_$37795_memory_ptr",
                              "typeString": "struct Witnet.RadonRetrieval memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "expression": {
                                    "id": 16601,
                                    "name": "__storage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16256,
                                    "src": "7068:9:40",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$16253_storage",
                                      "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                                    }
                                  },
                                  "id": 16602,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7078:19:40",
                                  "memberName": "radonRetrieveHashes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16246,
                                  "src": "7068:29:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                    "typeString": "bytes32[] storage ref"
                                  }
                                },
                                "id": 16604,
                                "indexExpression": {
                                  "id": 16603,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16586,
                                  "src": "7098:3:40",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "7068:34:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 16599,
                                "name": "__witOracleRadonRegistry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16234,
                                "src": "7004:24:40",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                                  "typeString": "contract IWitOracleRadonRegistry"
                                }
                              },
                              "id": 16600,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7029:20:40",
                              "memberName": "lookupRadonRetrieval",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 27261,
                              "src": "7004:45:40",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_RadonRetrieval_$37795_memory_ptr_$",
                                "typeString": "function (bytes32) view external returns (struct Witnet.RadonRetrieval memory)"
                              }
                            },
                            "id": 16605,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7004:113:40",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonRetrieval_$37795_memory_ptr",
                              "typeString": "struct Witnet.RadonRetrieval memory"
                            }
                          },
                          "src": "6984:133:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonRetrieval_$37795_memory_ptr",
                            "typeString": "struct Witnet.RadonRetrieval memory"
                          }
                        },
                        "id": 16607,
                        "nodeType": "ExpressionStatement",
                        "src": "6984:133:40"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16592,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16589,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16586,
                      "src": "6934:3:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 16590,
                        "name": "_dataSources",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16572,
                        "src": "6940:12:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Witnet.RadonRetrieval memory[] memory"
                        }
                      },
                      "id": 16591,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6953:6:40",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6940:19:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6934:25:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16609,
                  "initializationExpression": {
                    "assignments": [
                      16586
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 16586,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "6925:3:40",
                        "nodeType": "VariableDeclaration",
                        "scope": 16609,
                        "src": "6920:8:40",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16585,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6920:4:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 16588,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 16587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6931:1:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6920:12:40"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 16594,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "6961:6:40",
                      "subExpression": {
                        "id": 16593,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16586,
                        "src": "6964:3:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16595,
                    "nodeType": "ExpressionStatement",
                    "src": "6961:6:40"
                  },
                  "nodeType": "ForStatement",
                  "src": "6915:214:40"
                }
              ]
            },
            "functionSelector": "bc04eba8",
            "id": 16611,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16568,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16567,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "6732:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "6732:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "6732:12:40"
              }
            ],
            "name": "getDataSources",
            "nameLocation": "6657:14:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16566,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6691:8:40"
            },
            "parameters": {
              "id": 16565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6671:2:40"
            },
            "returnParameters": {
              "id": 16573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16572,
                  "mutability": "mutable",
                  "name": "_dataSources",
                  "nameLocation": "6794:12:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16611,
                  "src": "6763:43:40",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct Witnet.RadonRetrieval[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16570,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 16569,
                        "name": "Witnet.RadonRetrieval",
                        "nameLocations": [
                          "6763:6:40",
                          "6770:14:40"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37795,
                        "src": "6763:21:40"
                      },
                      "referencedDeclaration": 37795,
                      "src": "6763:21:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RadonRetrieval_$37795_storage_ptr",
                        "typeString": "struct Witnet.RadonRetrieval"
                      }
                    },
                    "id": 16571,
                    "nodeType": "ArrayTypeName",
                    "src": "6763:23:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$37795_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.RadonRetrieval[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6762:45:40"
            },
            "scope": 16677,
            "src": "6648:488:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27575
            ],
            "body": {
              "id": 16626,
              "nodeType": "Block",
              "src": "7303:123:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 16622,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "7379:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16623,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7389:18:40",
                        "memberName": "radonAggregateHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16249,
                        "src": "7379:28:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      ],
                      "expression": {
                        "id": 16620,
                        "name": "__witOracleRadonRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16234,
                        "src": "7321:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 16621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7346:18:40",
                      "memberName": "lookupRadonReducer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27194,
                      "src": "7321:43:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_RadonReducer_$37748_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct Witnet.RadonReducer memory)"
                      }
                    },
                    "id": 16624,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7321:97:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                      "typeString": "struct Witnet.RadonReducer memory"
                    }
                  },
                  "functionReturnParameters": 16619,
                  "id": 16625,
                  "nodeType": "Return",
                  "src": "7314:104:40"
                }
              ]
            },
            "functionSelector": "13152e89",
            "id": 16627,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16615,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16614,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "7239:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "7239:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "7239:12:40"
              }
            ],
            "name": "getDataSourcesAggregator",
            "nameLocation": "7153:24:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16613,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7198:8:40"
            },
            "parameters": {
              "id": 16612,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7177:2:40"
            },
            "returnParameters": {
              "id": 16619,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16618,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16627,
                  "src": "7270:26:40",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  },
                  "typeName": {
                    "id": 16617,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16616,
                      "name": "Witnet.RadonReducer",
                      "nameLocations": [
                        "7270:6:40",
                        "7277:12:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37748,
                      "src": "7270:19:40"
                    },
                    "referencedDeclaration": 37748,
                    "src": "7270:19:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonReducer_$37748_storage_ptr",
                      "typeString": "struct Witnet.RadonReducer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7269:28:40"
            },
            "scope": 16677,
            "src": "7144:282:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27586
            ],
            "body": {
              "id": 16651,
              "nodeType": "Block",
              "src": "7596:225:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 16642,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "7672:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16643,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7682:19:40",
                        "memberName": "radonRetrieveHashes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16246,
                        "src": "7672:29:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      {
                        "id": 16644,
                        "name": "args",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16631,
                        "src": "7716:4:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata[] calldata"
                        }
                      },
                      {
                        "expression": {
                          "id": 16645,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "7735:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16646,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7745:18:40",
                        "memberName": "radonAggregateHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16249,
                        "src": "7735:28:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "expression": {
                          "id": 16647,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16256,
                          "src": "7778:9:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$16253_storage",
                            "typeString": "struct WitOracleRadonRequestFactoryTemplates.Storage storage ref"
                          }
                        },
                        "id": 16648,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7788:14:40",
                        "memberName": "radonTallyHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16252,
                        "src": "7778:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        },
                        {
                          "typeIdentifier": "t_array$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      ],
                      "expression": {
                        "id": 16640,
                        "name": "__witOracleRadonRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16234,
                        "src": "7614:24:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 16641,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7639:18:40",
                      "memberName": "verifyRadonRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27355,
                      "src": "7614:43:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_userDefinedValueType$_RadonHash_$37153_$",
                        "typeString": "function (bytes32[] memory,string memory[] memory[] memory,bytes32,bytes32) external returns (Witnet.RadonHash)"
                      }
                    },
                    "id": 16649,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7614:199:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "functionReturnParameters": 16639,
                  "id": 16650,
                  "nodeType": "Return",
                  "src": "7607:206:40"
                }
              ]
            },
            "functionSelector": "bf7a0bd3",
            "id": 16652,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 16635,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 16634,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "7542:12:40"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "7542:12:40"
                },
                "nodeType": "ModifierInvocation",
                "src": "7542:12:40"
              }
            ],
            "name": "verifyRadonRequest",
            "nameLocation": "7443:18:40",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 16633,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7505:8:40"
            },
            "parameters": {
              "id": 16632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16631,
                  "mutability": "mutable",
                  "name": "args",
                  "nameLocation": "7482:4:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16652,
                  "src": "7462:24:40",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[][]"
                  },
                  "typeName": {
                    "baseType": {
                      "baseType": {
                        "id": 16628,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "7462:6:40",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "id": 16629,
                      "nodeType": "ArrayTypeName",
                      "src": "7462:8:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                        "typeString": "string[]"
                      }
                    },
                    "id": 16630,
                    "nodeType": "ArrayTypeName",
                    "src": "7462:10:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_array$_t_string_storage_$dyn_storage_$dyn_storage_ptr",
                      "typeString": "string[][]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7461:26:40"
            },
            "returnParameters": {
              "id": 16639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16638,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16652,
                  "src": "7573:16:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 16637,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16636,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "7573:6:40",
                        "7580:9:40"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "7573:16:40"
                    },
                    "referencedDeclaration": 37153,
                    "src": "7573:16:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7572:18:40"
            },
            "scope": 16677,
            "src": "7434:387:40",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16675,
              "nodeType": "Block",
              "src": "8337:245:40",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 16668,
                            "name": "__SELF",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45353,
                            "src": "8414:6:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 16669,
                            "name": "_dataRetrieveHashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16656,
                            "src": "8439:19:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          {
                            "id": 16670,
                            "name": "_dataSourcesAggregatorHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16658,
                            "src": "8477:26:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            }
                          },
                          {
                            "id": 16671,
                            "name": "_crowdAttestationTallyHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16660,
                            "src": "8522:26:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            },
                            {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            },
                            {
                              "typeIdentifier": "t_bytes15",
                              "typeString": "bytes15"
                            }
                          ],
                          "expression": {
                            "id": 16666,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "8379:3:40",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 16667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "8383:12:40",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "8379:16:40",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 16672,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8379:184:40",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 16665,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "8355:9:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 16673,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8355:219:40",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 16664,
                  "id": 16674,
                  "nodeType": "Return",
                  "src": "8348:226:40"
                }
              ]
            },
            "documentation": {
              "id": 16653,
              "nodeType": "StructuredDocumentation",
              "src": "7835:238:40",
              "text": "===============================================================================================================\n --- Internal methods ------------------------------------------------------------------------------------------"
            },
            "id": 16676,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_determineSaltAndPepper",
            "nameLocation": "8088:23:40",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16656,
                  "mutability": "mutable",
                  "name": "_dataRetrieveHashes",
                  "nameLocation": "8145:19:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16676,
                  "src": "8126:38:40",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16654,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "8126:7:40",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16655,
                    "nodeType": "ArrayTypeName",
                    "src": "8126:9:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16658,
                  "mutability": "mutable",
                  "name": "_dataSourcesAggregatorHash",
                  "nameLocation": "8187:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16676,
                  "src": "8179:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16657,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "8179:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16660,
                  "mutability": "mutable",
                  "name": "_crowdAttestationTallyHash",
                  "nameLocation": "8236:26:40",
                  "nodeType": "VariableDeclaration",
                  "scope": 16676,
                  "src": "8228:34:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes15",
                    "typeString": "bytes15"
                  },
                  "typeName": {
                    "id": 16659,
                    "name": "bytes15",
                    "nodeType": "ElementaryTypeName",
                    "src": "8228:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes15",
                      "typeString": "bytes15"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8111:162:40"
            },
            "returnParameters": {
              "id": 16664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16663,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16676,
                  "src": "8323:7:40",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16662,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8323:7:40",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8322:9:40"
            },
            "scope": 16677,
            "src": "8079:503:40",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 16678,
        "src": "271:8314:40",
        "usedErrors": [
          16,
          19
        ],
        "usedEvents": [
          24,
          45361
        ]
      }
    ],
    "src": "35:8552:40"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {},
      "links": {},
      "address": "0x300c8ccc9526495BB7e5911105f0663Cb4c3a137"
    },
    "1285": {
      "events": {},
      "links": {},
      "address": "0x300c8ccc9526495BB7e5911105f0663Cb4c3a137"
    },
    "1287": {
      "events": {},
      "links": {},
      "address": "0x300c8ccc9526495BB7e5911105f0663Cb4c3a137"
    },
    "4801": {
      "events": {},
      "links": {},
      "address": "0x300c8ccc9526495BB7e5911105f0663Cb4c3a137"
    },
    "11142220": {
      "events": {},
      "links": {},
      "address": "0xFF5ad05D038fcc04354B2fca1fb657eA345594FF"
    },
    "11155111": {
      "events": {},
      "links": {},
      "address": "0x300c8ccc9526495BB7e5911105f0663Cb4c3a137"
    }
  },
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.522Z",
  "devdoc": {
    "errors": {
      "InvalidInitialization()": [
        {
          "details": "The contract is already initialized."
        }
      ],
      "NotInitializing()": [
        {
          "details": "The contract is not initializing."
        }
      ]
    },
    "events": {
      "Initialized(uint64)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      }
    },
    "kind": "dev",
    "methods": {
      "verifyRadonRequest(string[][])": {
        "details": "This method requires less gas than buildWitOracleRequest(string[][]), and it's usually preferred when data requests built out of this templateare intended to be used just once in lifetime.    "
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "cloned()": {
        "notice": "Tells whether this contract is a clone of `self()`"
      },
      "getArgsCount()": {
        "notice": "=============================================================================================================== --- IWitOracleRadonRequestTemplate -------------------------------------------------------------------------------"
      },
      "initialized()": {
        "notice": "Tells whether a WitOracleRequest or a WitOracleRequestTemplate has been properly initialized."
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "verifyRadonRequest(string[][])": {
        "notice": "Verifies into the bounded WitOracle's registry the actual bytecode  and RAD hash of the Witnet-compliant Radon Request that gets provably  made out of the data sources, aggregate and tally Radon Reducers that  compose this WitOracleRequestTemplate. While no WitOracleRequest instance is  actually constructed, the returned value will be accepted as a valid RAD hash on the witOracle() contract from now on.  Reverts if: - the ranks of passed array don't match either the number of this    template's data sources, or the number of required parameters by    each one of those."
      },
      "witOracle()": {
        "notice": "Reference to the Witnet Request Board that all templates built out from this factory will refer to."
      }
    },
    "version": 1
  }
}