{
  "contractName": "MajorityOracle",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "oracles",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "masterCopy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getStatusAndOutcome",
      "outputs": [
        {
          "name": "outcomeSet",
          "type": "bool"
        },
        {
          "name": "outcome",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOutcomeSet",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getOutcome",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.6+commit.b259423e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"oracles\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStatusAndOutcome\",\"outputs\":[{\"name\":\"outcomeSet\",\"type\":\"bool\"},{\"name\":\"outcome\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOutcome\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"masterCopy\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOutcomeSet\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.pm>\",\"methods\":{\"getOutcome()\":{\"details\":\"Returns winning outcome\",\"return\":\"Outcome\"},\"getStatusAndOutcome()\":{\"details\":\"Allows to registers oracles for a majority vote\",\"return\":\"Is outcome set?Outcome\"},\"isOutcomeSet()\":{\"details\":\"Returns if winning outcome is set\",\"return\":\"Is outcome set?\"}},\"title\":\"Majority oracle contract - Allows to resolve an event based on multiple oracles with majority vote\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/MajorityOracle.sol\":\"MajorityOracle\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/MajorityOracle.sol\":{\"keccak256\":\"0x2662717bba85076a2beb5166630f415997b78174a11713845af147d2acfed289\",\"urls\":[\"bzzr://8172948c09ee1cc3a5bafe2fd38e97215b408cace6b61fbae6444cfb8bab5fa4\"]},\"/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/Oracle.sol\":{\"keccak256\":\"0xf4d12f4a59c17e66dfa6791188f621a8914e2038a4e3f72d6fc9fb903ca8e18e\",\"urls\":[\"bzzr://a477ccd203e677cc904b1a4f8fcc85251c5b5e09c5c10eed27e01318584b16d1\"]},\"@gnosis.pm/util-contracts/contracts/Proxy.sol\":{\"keccak256\":\"0xeab0e83a9ec9e7f052c0455a11577061ec6d1994db08dae429abd6faaabf6555\",\"urls\":[\"bzzr://b2c1273d4ec30e2f9e768eea8c510f8493a7359b03e01923d93eea86b57ec145\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50610586806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80635b69a7d81461005c5780636bcc035a146100ca5780637e7e4b47146100f3578063a619486e14610111578063ccdf68f31461015b575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061017d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d26101b9565b60405180831515151581526020018281526020019250505060405180910390f35b6100fb61050b565b6040518082815260200191505060405180910390f35b610119610520565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610163610545565b604051808215151515815260200191505060405180910390f35b6001818154811061018a57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606001805490506040519080825280602002602001820160405280156101f45781602001602082028038833980820191505090505b509050606060018054905060405190808252806020026020018201604052801561022d5781602001602082028038833980820191505090505b509050600092505b600180549050831015610479576001838154811061024f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccdf68f36040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d60208110156102e957600080fd5b81019080805190602001909291905050501561046c5760006001848154811061030e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e7e4b476040518163ffffffff1660e01b815260040160206040518083038186803b15801561037e57600080fd5b505afa158015610392573d6000803e3d6000fd5b505050506040513d60208110156103a857600080fd5b8101908080519060200190929190505050905060008090505b848111610469578381815181106103d457fe5b60200260200101518214156104085760018382815181106103f157fe5b602002602001018181510191508181525050610469565b600083828151811061041657fe5b6020026020010151141561045c578184828151811061043157fe5b602002602001018181525050600183828151811061044b57fe5b602002602001018181525050610469565b80806001019150506103c1565b50505b8280600101935050610235565b60008090506000809050600094505b6001805490508510156104d757818386815181106104a257fe5b602002602001015111156104ca578285815181106104bc57fe5b602002602001015191508490505b8480600101955050610488565b60018054905060028302111561050257600196508381815181106104f757fe5b602002602001015195505b50505050509091565b6000806105166101b9565b9150508091505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806105506101b9565b509050809150509056fea165627a7a72305820540524403074dd263f93967800c60d0bba6cd959d569737bff668e95af7ad8cf0029",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80635b69a7d81461005c5780636bcc035a146100ca5780637e7e4b47146100f3578063a619486e14610111578063ccdf68f31461015b575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061017d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d26101b9565b60405180831515151581526020018281526020019250505060405180910390f35b6100fb61050b565b6040518082815260200191505060405180910390f35b610119610520565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610163610545565b604051808215151515815260200191505060405180910390f35b6001818154811061018a57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606001805490506040519080825280602002602001820160405280156101f45781602001602082028038833980820191505090505b509050606060018054905060405190808252806020026020018201604052801561022d5781602001602082028038833980820191505090505b509050600092505b600180549050831015610479576001838154811061024f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccdf68f36040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d60208110156102e957600080fd5b81019080805190602001909291905050501561046c5760006001848154811061030e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e7e4b476040518163ffffffff1660e01b815260040160206040518083038186803b15801561037e57600080fd5b505afa158015610392573d6000803e3d6000fd5b505050506040513d60208110156103a857600080fd5b8101908080519060200190929190505050905060008090505b848111610469578381815181106103d457fe5b60200260200101518214156104085760018382815181106103f157fe5b602002602001018181510191508181525050610469565b600083828151811061041657fe5b6020026020010151141561045c578184828151811061043157fe5b602002602001018181525050600183828151811061044b57fe5b602002602001018181525050610469565b80806001019150506103c1565b50505b8280600101935050610235565b60008090506000809050600094505b6001805490508510156104d757818386815181106104a257fe5b602002602001015111156104ca578285815181106104bc57fe5b602002602001015191508490505b8480600101955050610488565b60018054905060028302111561050257600196508381815181106104f757fe5b602002602001015195505b50505050509091565b6000806105166101b9565b9150508091505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806105506101b9565b509050809150509056fea165627a7a72305820540524403074dd263f93967800c60d0bba6cd959d569737bff668e95af7ad8cf0029",
  "sourceMap": "961:1972:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;961:1972:20;;;;;;;",
  "deployedSourceMap": "961:1972:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;961:1972:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;180:23;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;180:23:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1188:1255;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;205:25:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2528:166:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;180:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1188:1255::-;1264:15;1281:11;1308:6;1324:21;1358:7;:14;;;;1348:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;1348:25:20;;;;1324:49;;1383:25;1422:7;:14;;;;1411:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;1411:26:20;;;;1383:54;;1456:1;1452:5;;1447:543;1463:7;:14;;;;1459:1;:18;1447:543;;;1500:7;1508:1;1500:10;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1500:25:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1500:25:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1500:25:20;;;;;;;;;;;;;;;;1496:494;;;1545:12;1560:7;1568:1;1560:10;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1560:23:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1560:23:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1560:23:20;;;;;;;;;;;;;;;;1545:38;;1606:6;1615:1;1606:10;;1601:375;1623:1;1618;:6;1601:375;;1667:8;1676:1;1667:11;;;;;;;;;;;;;;1655:8;:23;1651:325;;;1724:1;1706:11;1718:1;1706:14;;;;;;;;;;;;;:19;;;;;;;;;;;1751:5;;1651:325;1827:1;1809:11;1821:1;1809:14;;;;;;;;;;;;;;:19;1805:171;;;1870:8;1856;1865:1;1856:11;;;;;;;;;;;;;:22;;;;;1921:1;1904:11;1916:1;1904:14;;;;;;;;;;;;;:18;;;;;1948:5;;1805:171;1626:3;;;;;;;1601:375;;;;1496:494;;1479:3;;;;;;;1447:543;;;1999:23;2025:1;1999:27;;2036:17;2056:1;2036:21;;2076:1;2072:5;;2067:192;2083:7;:14;;;;2079:1;:18;2067:192;;;2137:18;2120:11;2132:1;2120:14;;;;;;;;;;;;;;:35;2116:143;;;2196:11;2208:1;2196:14;;;;;;;;;;;;;;2175:35;;2243:1;2228:16;;2116:143;2099:3;;;;;;;2067:192;;;2333:7;:14;;;;2329:1;2308:18;:22;:39;2304:133;;;2376:4;2363:17;;2404:8;2413:12;2404:22;;;;;;;;;;;;;;2394:32;;2304:133;1188:1255;;;;;;;:::o;2761:170::-;2828:3;2850:18;2872:21;:19;:21::i;:::-;2847:46;;;2910:14;2903:21;;;2761:170;:::o;205:25:29:-;;;;;;;;;;;;;:::o;2528:166:20:-;2597:4;2618:15;2639:21;:19;:21::i;:::-;2617:43;;;2677:10;2670:17;;;2528:166;:::o",
  "source": "pragma solidity ^0.5.0;\nimport \"../Oracles/Oracle.sol\";\nimport \"@gnosis.pm/util-contracts/contracts/Proxy.sol\";\n\n\ncontract MajorityOracleData {\n\n    /*\n     *  Storage\n     */\n    Oracle[] public oracles;\n}\n\ncontract MajorityOracleProxy is Proxy, MajorityOracleData {\n\n    /// @dev Allows to create an oracle for a majority vote based on other oracles\n    /// @param _oracles List of oracles taking part in the majority vote\n    constructor(address proxied, Oracle[] memory _oracles)\n        Proxy(proxied)\n        public\n    {\n        // At least 2 oracles should be defined\n        require(_oracles.length > 2);\n        for (uint i = 0; i < _oracles.length; i++)\n            // Oracle address cannot be null\n            require(address(_oracles[i]) != address(0));\n        oracles = _oracles;\n    }\n}\n\n/// @title Majority oracle contract - Allows to resolve an event based on multiple oracles with majority vote\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract MajorityOracle is Proxied, Oracle, MajorityOracleData {\n\n    /*\n     *  Public functions\n     */\n    /// @dev Allows to registers oracles for a majority vote\n    /// @return Is outcome set?\n    /// @return Outcome\n    function getStatusAndOutcome()\n        public\n        view\n        returns (bool outcomeSet, int outcome)\n    {\n        uint i;\n        int[] memory outcomes = new int[](oracles.length);\n        uint[] memory validations = new uint[](oracles.length);\n        for (i = 0; i < oracles.length; i++)\n            if (oracles[i].isOutcomeSet()) {\n                int _outcome = oracles[i].getOutcome();\n                for (uint j = 0; j <= i; j++)\n                    if (_outcome == outcomes[j]) {\n                        validations[j] += 1;\n                        break;\n                    }\n                    else if (validations[j] == 0) {\n                        outcomes[j] = _outcome;\n                        validations[j] = 1;\n                        break;\n                    }\n            }\n        uint outcomeValidations = 0;\n        uint outcomeIndex = 0;\n        for (i = 0; i < oracles.length; i++)\n            if (validations[i] > outcomeValidations) {\n                outcomeValidations = validations[i];\n                outcomeIndex = i;\n            }\n        // There is a majority vote\n        if (outcomeValidations * 2 > oracles.length) {\n            outcomeSet = true;\n            outcome = outcomes[outcomeIndex];\n        }\n    }\n\n    /// @dev Returns if winning outcome is set\n    /// @return Is outcome set?\n    function isOutcomeSet()\n        public\n        view\n        returns (bool)\n    {\n        (bool outcomeSet, ) = getStatusAndOutcome();\n        return outcomeSet;\n    }\n\n    /// @dev Returns winning outcome\n    /// @return Outcome\n    function getOutcome()\n        public\n        view\n        returns (int)\n    {\n        (, int winningOutcome) = getStatusAndOutcome();\n        return winningOutcome;\n    }\n}\n",
  "sourcePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/MajorityOracle.sol",
  "ast": {
    "absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/MajorityOracle.sol",
    "exportedSymbols": {
      "MajorityOracle": [
        4772
      ],
      "MajorityOracleData": [
        4527
      ],
      "MajorityOracleProxy": [
        4579
      ]
    },
    "id": 4773,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4521,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:20"
      },
      {
        "absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/Oracle.sol",
        "file": "../Oracles/Oracle.sol",
        "id": 4522,
        "nodeType": "ImportDirective",
        "scope": 4773,
        "sourceUnit": 4842,
        "src": "24:31:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@gnosis.pm/util-contracts/contracts/Proxy.sol",
        "file": "@gnosis.pm/util-contracts/contracts/Proxy.sol",
        "id": 4523,
        "nodeType": "ImportDirective",
        "scope": 4773,
        "sourceUnit": 6829,
        "src": "56:55:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4527,
        "linearizedBaseContracts": [
          4527
        ],
        "name": "MajorityOracleData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4526,
            "name": "oracles",
            "nodeType": "VariableDeclaration",
            "scope": 4527,
            "src": "180:23:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
              "typeString": "contract Oracle[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4524,
                "name": "Oracle",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4841,
                "src": "180:6:20",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Oracle_$4841",
                  "typeString": "contract Oracle"
                }
              },
              "id": 4525,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "180:8:20",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage_ptr",
                "typeString": "contract Oracle[]"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "114:92:20"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4528,
              "name": "Proxy",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6828,
              "src": "240:5:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxy_$6828",
                "typeString": "contract Proxy"
              }
            },
            "id": 4529,
            "nodeType": "InheritanceSpecifier",
            "src": "240:5:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4530,
              "name": "MajorityOracleData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "247:18:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MajorityOracleData_$4527",
                "typeString": "contract MajorityOracleData"
              }
            },
            "id": 4531,
            "nodeType": "InheritanceSpecifier",
            "src": "247:18:20"
          }
        ],
        "contractDependencies": [
          4527,
          6798,
          6828
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4579,
        "linearizedBaseContracts": [
          4579,
          4527,
          6828,
          6798
        ],
        "name": "MajorityOracleProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 4577,
              "nodeType": "Block",
              "src": "526:274:20",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4543,
                            "name": "_oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4536,
                            "src": "592:8:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                              "typeString": "contract Oracle[] memory"
                            }
                          },
                          "id": 4544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "592:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 4545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "610:1:20",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "src": "592:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4542,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7923,
                        7924
                      ],
                      "referencedDeclaration": 7923,
                      "src": "584:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "584:28:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4548,
                  "nodeType": "ExpressionStatement",
                  "src": "584:28:20"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4562,
                                  "name": "_oracles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4536,
                                  "src": "738:8:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                                    "typeString": "contract Oracle[] memory"
                                  }
                                },
                                "id": 4564,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4563,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4550,
                                  "src": "747:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "738:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              ],
                              "id": 4561,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "730:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 4565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "730:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4567,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "762:1:20",
                                "subdenomination": null,
                                "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": 4566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "754:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 4568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "754:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "730:34:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 4560,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          7923,
                          7924
                        ],
                        "referencedDeclaration": 7923,
                        "src": "722:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                          "typeString": "function (bool) pure"
                        }
                      },
                      "id": 4570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "722:43:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 4571,
                    "nodeType": "ExpressionStatement",
                    "src": "722:43:20"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4553,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4550,
                      "src": "639:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4554,
                        "name": "_oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4536,
                        "src": "643:8:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                          "typeString": "contract Oracle[] memory"
                        }
                      },
                      "id": 4555,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "643:15:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "639:19:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4572,
                  "initializationExpression": {
                    "assignments": [
                      4550
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4550,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4572,
                        "src": "627:6:20",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4549,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "627:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4552,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "636:1:20",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "627:10:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "660:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4557,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4550,
                        "src": "660:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4559,
                    "nodeType": "ExpressionStatement",
                    "src": "660:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "622:143:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4573,
                      "name": "oracles",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4526,
                      "src": "775:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                        "typeString": "contract Oracle[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4574,
                      "name": "_oracles",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4536,
                      "src": "785:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                        "typeString": "contract Oracle[] memory"
                      }
                    },
                    "src": "775:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                      "typeString": "contract Oracle[] storage ref"
                    }
                  },
                  "id": 4576,
                  "nodeType": "ExpressionStatement",
                  "src": "775:18:20"
                }
              ]
            },
            "documentation": "@dev Allows to create an oracle for a majority vote based on other oracles\n @param _oracles List of oracles taking part in the majority vote",
            "id": 4578,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 4539,
                    "name": "proxied",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4533,
                    "src": "498:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 4540,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4538,
                  "name": "Proxy",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6828,
                  "src": "492:5:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Proxy_$6828_$",
                    "typeString": "type(contract Proxy)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "492:14:20"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4533,
                  "name": "proxied",
                  "nodeType": "VariableDeclaration",
                  "scope": 4578,
                  "src": "441:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4532,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "441:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4536,
                  "name": "_oracles",
                  "nodeType": "VariableDeclaration",
                  "scope": 4578,
                  "src": "458:24:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                    "typeString": "contract Oracle[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4534,
                      "name": "Oracle",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4841,
                      "src": "458:6:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Oracle_$4841",
                        "typeString": "contract Oracle"
                      }
                    },
                    "id": 4535,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "458:8:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage_ptr",
                      "typeString": "contract Oracle[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "440:43:20"
            },
            "returnParameters": {
              "id": 4541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "526:0:20"
            },
            "scope": 4579,
            "src": "429:371:20",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "208:594:20"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4580,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6798,
              "src": "988:7:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$6798",
                "typeString": "contract Proxied"
              }
            },
            "id": 4581,
            "nodeType": "InheritanceSpecifier",
            "src": "988:7:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4582,
              "name": "Oracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4841,
              "src": "997:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Oracle_$4841",
                "typeString": "contract Oracle"
              }
            },
            "id": 4583,
            "nodeType": "InheritanceSpecifier",
            "src": "997:6:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4584,
              "name": "MajorityOracleData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "1005:18:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MajorityOracleData_$4527",
                "typeString": "contract MajorityOracleData"
              }
            },
            "id": 4585,
            "nodeType": "InheritanceSpecifier",
            "src": "1005:18:20"
          }
        ],
        "contractDependencies": [
          4527,
          4841,
          6798
        ],
        "contractKind": "contract",
        "documentation": "@title Majority oracle contract - Allows to resolve an event based on multiple oracles with majority vote\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 4772,
        "linearizedBaseContracts": [
          4772,
          4527,
          4841,
          6798
        ],
        "name": "MajorityOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 4744,
              "nodeType": "Block",
              "src": "1298:1145:20",
              "statements": [
                {
                  "assignments": [
                    4593
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4593,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1308:6:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4592,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1308:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4594,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1308:6:20"
                },
                {
                  "assignments": [
                    4598
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4598,
                      "name": "outcomes",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1324:21:20",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                        "typeString": "int256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4596,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "1324:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4597,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1324:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4605,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4602,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4526,
                          "src": "1358:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                            "typeString": "contract Oracle[] storage ref"
                          }
                        },
                        "id": 4603,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1358:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1348:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (int256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4599,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "1352:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4600,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1352:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      }
                    },
                    "id": 4604,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1348:25:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                      "typeString": "int256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1324:49:20"
                },
                {
                  "assignments": [
                    4609
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4609,
                      "name": "validations",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1383:25:20",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4607,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1383:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4608,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1383:6:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4616,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4613,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4526,
                          "src": "1422:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                            "typeString": "contract Oracle[] storage ref"
                          }
                        },
                        "id": 4614,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1422:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4612,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1411:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4610,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1415:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4611,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1415:6:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 4615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1411:26:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1383:54:20"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4628,
                            "name": "oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4526,
                            "src": "1500:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                              "typeString": "contract Oracle[] storage ref"
                            }
                          },
                          "id": 4630,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4629,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4593,
                            "src": "1508:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1500:10:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Oracle_$4841",
                            "typeString": "contract Oracle"
                          }
                        },
                        "id": 4631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isOutcomeSet",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4835,
                        "src": "1500:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                          "typeString": "function () view external returns (bool)"
                        }
                      },
                      "id": 4632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1500:25:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 4687,
                    "nodeType": "IfStatement",
                    "src": "1496:494:20",
                    "trueBody": {
                      "id": 4686,
                      "nodeType": "Block",
                      "src": "1527:463:20",
                      "statements": [
                        {
                          "assignments": [
                            4634
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 4634,
                              "name": "_outcome",
                              "nodeType": "VariableDeclaration",
                              "scope": 4686,
                              "src": "1545:12:20",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "typeName": {
                                "id": 4633,
                                "name": "int",
                                "nodeType": "ElementaryTypeName",
                                "src": "1545:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 4640,
                          "initialValue": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4635,
                                  "name": "oracles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4526,
                                  "src": "1560:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                                    "typeString": "contract Oracle[] storage ref"
                                  }
                                },
                                "id": 4637,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4636,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4593,
                                  "src": "1568:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1560:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              },
                              "id": 4638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getOutcome",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4840,
                              "src": "1560:21:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$",
                                "typeString": "function () view external returns (int256)"
                              }
                            },
                            "id": 4639,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1560:23:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "1545:38:20"
                        },
                        {
                          "body": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 4655,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 4651,
                                "name": "_outcome",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4634,
                                "src": "1655:8:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4652,
                                  "name": "outcomes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4598,
                                  "src": "1667:8:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                    "typeString": "int256[] memory"
                                  }
                                },
                                "id": 4654,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4653,
                                  "name": "j",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4642,
                                  "src": "1676:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1667:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "1655:23:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4668,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4664,
                                    "name": "validations",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4609,
                                    "src": "1809:11:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4666,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4665,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4642,
                                    "src": "1821:1:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1809:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4667,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1827:1:20",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "1809:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 4683,
                              "nodeType": "IfStatement",
                              "src": "1805:171:20",
                              "trueBody": {
                                "id": 4682,
                                "nodeType": "Block",
                                "src": "1830:146:20",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4673,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4669,
                                          "name": "outcomes",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4598,
                                          "src": "1856:8:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                            "typeString": "int256[] memory"
                                          }
                                        },
                                        "id": 4671,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4670,
                                          "name": "j",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4642,
                                          "src": "1865:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "1856:11:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 4672,
                                        "name": "_outcome",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4634,
                                        "src": "1870:8:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "src": "1856:22:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "id": 4674,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1856:22:20"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4679,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4675,
                                          "name": "validations",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4609,
                                          "src": "1904:11:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 4677,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4676,
                                          "name": "j",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4642,
                                          "src": "1916:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "1904:14:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 4678,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1921:1:20",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "1904:18:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 4680,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1904:18:20"
                                  },
                                  {
                                    "id": 4681,
                                    "nodeType": "Break",
                                    "src": "1948:5:20"
                                  }
                                ]
                              }
                            },
                            "id": 4684,
                            "nodeType": "IfStatement",
                            "src": "1651:325:20",
                            "trueBody": {
                              "id": 4663,
                              "nodeType": "Block",
                              "src": "1680:99:20",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4660,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 4656,
                                        "name": "validations",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4609,
                                        "src": "1706:11:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                          "typeString": "uint256[] memory"
                                        }
                                      },
                                      "id": 4658,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 4657,
                                        "name": "j",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4642,
                                        "src": "1718:1:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "1706:14:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 4659,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1724:1:20",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "1706:19:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4661,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1706:19:20"
                                },
                                {
                                  "id": 4662,
                                  "nodeType": "Break",
                                  "src": "1751:5:20"
                                }
                              ]
                            }
                          },
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4647,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4645,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4642,
                              "src": "1618:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 4646,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4593,
                              "src": "1623:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1618:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 4685,
                          "initializationExpression": {
                            "assignments": [
                              4642
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 4642,
                                "name": "j",
                                "nodeType": "VariableDeclaration",
                                "scope": 4685,
                                "src": "1606:6:20",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "typeName": {
                                  "id": 4641,
                                  "name": "uint",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1606:4:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 4644,
                            "initialValue": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1615:1:20",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "1606:10:20"
                          },
                          "loopExpression": {
                            "expression": {
                              "argumentTypes": null,
                              "id": 4649,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "1626:3:20",
                              "subExpression": {
                                "argumentTypes": null,
                                "id": 4648,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4642,
                                "src": "1626:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4650,
                            "nodeType": "ExpressionStatement",
                            "src": "1626:3:20"
                          },
                          "nodeType": "ForStatement",
                          "src": "1601:375:20"
                        }
                      ]
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4624,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4621,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4593,
                      "src": "1459:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4622,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "1463:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4623,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1463:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1459:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4688,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4619,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4617,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "1452:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4618,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1456:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1452:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4620,
                    "nodeType": "ExpressionStatement",
                    "src": "1452:5:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1479:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4625,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "1479:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4627,
                    "nodeType": "ExpressionStatement",
                    "src": "1479:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "1447:543:20"
                },
                {
                  "assignments": [
                    4690
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4690,
                      "name": "outcomeValidations",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1999:23:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4689,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1999:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4692,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2025:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1999:27:20"
                },
                {
                  "assignments": [
                    4694
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4694,
                      "name": "outcomeIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "2036:17:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4693,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2036:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4696,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2056:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2036:21:20"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4712,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4708,
                          "name": "validations",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4609,
                          "src": "2120:11:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 4710,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4709,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4593,
                          "src": "2132:1:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2120:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 4711,
                        "name": "outcomeValidations",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "2137:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2120:35:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 4724,
                    "nodeType": "IfStatement",
                    "src": "2116:143:20",
                    "trueBody": {
                      "id": 4723,
                      "nodeType": "Block",
                      "src": "2157:102:20",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4713,
                              "name": "outcomeValidations",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4690,
                              "src": "2175:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4714,
                                "name": "validations",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4609,
                                "src": "2196:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 4716,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4715,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4593,
                                "src": "2208:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2196:14:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2175:35:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4718,
                          "nodeType": "ExpressionStatement",
                          "src": "2175:35:20"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4719,
                              "name": "outcomeIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4694,
                              "src": "2228:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 4720,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4593,
                              "src": "2243:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2228:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4722,
                          "nodeType": "ExpressionStatement",
                          "src": "2228:16:20"
                        }
                      ]
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4701,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4593,
                      "src": "2079:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4702,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "2083:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4703,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2083:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2079:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4725,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4699,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4697,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "2072:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4698,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2076:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2072:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4700,
                    "nodeType": "ExpressionStatement",
                    "src": "2072:5:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2099:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4705,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "2099:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4707,
                    "nodeType": "ExpressionStatement",
                    "src": "2099:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "2067:192:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4731,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4726,
                        "name": "outcomeValidations",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "2308:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 4727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2329:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "2308:22:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4729,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "2333:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4730,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2333:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2308:39:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4743,
                  "nodeType": "IfStatement",
                  "src": "2304:133:20",
                  "trueBody": {
                    "id": 4742,
                    "nodeType": "Block",
                    "src": "2349:88:20",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4732,
                            "name": "outcomeSet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4588,
                            "src": "2363:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 4733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2376:4:20",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2363:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4735,
                        "nodeType": "ExpressionStatement",
                        "src": "2363:17:20"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4736,
                            "name": "outcome",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4590,
                            "src": "2394:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4737,
                              "name": "outcomes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4598,
                              "src": "2404:8:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                "typeString": "int256[] memory"
                              }
                            },
                            "id": 4739,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4738,
                              "name": "outcomeIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4694,
                              "src": "2413:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2404:22:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "2394:32:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4741,
                        "nodeType": "ExpressionStatement",
                        "src": "2394:32:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Allows to registers oracles for a majority vote\n @return Is outcome set?\n @return Outcome",
            "id": 4745,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStatusAndOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4586,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1216:2:20"
            },
            "returnParameters": {
              "id": 4591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4588,
                  "name": "outcomeSet",
                  "nodeType": "VariableDeclaration",
                  "scope": 4745,
                  "src": "1264:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4587,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4590,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 4745,
                  "src": "1281:11:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 4589,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1281:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1263:30:20"
            },
            "scope": 4772,
            "src": "1188:1255:20",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4757,
              "nodeType": "Block",
              "src": "2607:87:20",
              "statements": [
                {
                  "assignments": [
                    4751,
                    null
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4751,
                      "name": "outcomeSet",
                      "nodeType": "VariableDeclaration",
                      "scope": 4757,
                      "src": "2618:15:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4750,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2618:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    null
                  ],
                  "id": 4754,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4752,
                      "name": "getStatusAndOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4745,
                      "src": "2639:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_int256_$",
                        "typeString": "function () view returns (bool,int256)"
                      }
                    },
                    "id": 4753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2639:21:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
                      "typeString": "tuple(bool,int256)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2617:43:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4755,
                    "name": "outcomeSet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4751,
                    "src": "2677:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4749,
                  "id": 4756,
                  "nodeType": "Return",
                  "src": "2670:17:20"
                }
              ]
            },
            "documentation": "@dev Returns if winning outcome is set\n @return Is outcome set?",
            "id": 4758,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isOutcomeSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4746,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2549:2:20"
            },
            "returnParameters": {
              "id": 4749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4748,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4758,
                  "src": "2597:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4747,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2597:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2596:6:20"
            },
            "scope": 4772,
            "src": "2528:166:20",
            "stateMutability": "view",
            "superFunction": 4835,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4770,
              "nodeType": "Block",
              "src": "2837:94:20",
              "statements": [
                {
                  "assignments": [
                    null,
                    4764
                  ],
                  "declarations": [
                    null,
                    {
                      "constant": false,
                      "id": 4764,
                      "name": "winningOutcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 4770,
                      "src": "2850:18:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 4763,
                        "name": "int",
                        "nodeType": "ElementaryTypeName",
                        "src": "2850:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4767,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4765,
                      "name": "getStatusAndOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4745,
                      "src": "2872:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_int256_$",
                        "typeString": "function () view returns (bool,int256)"
                      }
                    },
                    "id": 4766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2872:21:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
                      "typeString": "tuple(bool,int256)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2847:46:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4768,
                    "name": "winningOutcome",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4764,
                    "src": "2910:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 4762,
                  "id": 4769,
                  "nodeType": "Return",
                  "src": "2903:21:20"
                }
              ]
            },
            "documentation": "@dev Returns winning outcome\n @return Outcome",
            "id": 4771,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4759,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2780:2:20"
            },
            "returnParameters": {
              "id": 4762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4761,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4771,
                  "src": "2828:3:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 4760,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2828:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2827:5:20"
            },
            "scope": 4772,
            "src": "2761:170:20",
            "stateMutability": "view",
            "superFunction": 4840,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "961:1972:20"
      }
    ],
    "src": "0:2934:20"
  },
  "legacyAST": {
    "absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/MajorityOracle.sol",
    "exportedSymbols": {
      "MajorityOracle": [
        4772
      ],
      "MajorityOracleData": [
        4527
      ],
      "MajorityOracleProxy": [
        4579
      ]
    },
    "id": 4773,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4521,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:20"
      },
      {
        "absolutePath": "/home/alan/src/github.com/gnosis/pm-contracts/contracts/Oracles/Oracle.sol",
        "file": "../Oracles/Oracle.sol",
        "id": 4522,
        "nodeType": "ImportDirective",
        "scope": 4773,
        "sourceUnit": 4842,
        "src": "24:31:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@gnosis.pm/util-contracts/contracts/Proxy.sol",
        "file": "@gnosis.pm/util-contracts/contracts/Proxy.sol",
        "id": 4523,
        "nodeType": "ImportDirective",
        "scope": 4773,
        "sourceUnit": 6829,
        "src": "56:55:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4527,
        "linearizedBaseContracts": [
          4527
        ],
        "name": "MajorityOracleData",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4526,
            "name": "oracles",
            "nodeType": "VariableDeclaration",
            "scope": 4527,
            "src": "180:23:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
              "typeString": "contract Oracle[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4524,
                "name": "Oracle",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4841,
                "src": "180:6:20",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Oracle_$4841",
                  "typeString": "contract Oracle"
                }
              },
              "id": 4525,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "180:8:20",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage_ptr",
                "typeString": "contract Oracle[]"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "114:92:20"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4528,
              "name": "Proxy",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6828,
              "src": "240:5:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxy_$6828",
                "typeString": "contract Proxy"
              }
            },
            "id": 4529,
            "nodeType": "InheritanceSpecifier",
            "src": "240:5:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4530,
              "name": "MajorityOracleData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "247:18:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MajorityOracleData_$4527",
                "typeString": "contract MajorityOracleData"
              }
            },
            "id": 4531,
            "nodeType": "InheritanceSpecifier",
            "src": "247:18:20"
          }
        ],
        "contractDependencies": [
          4527,
          6798,
          6828
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4579,
        "linearizedBaseContracts": [
          4579,
          4527,
          6828,
          6798
        ],
        "name": "MajorityOracleProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 4577,
              "nodeType": "Block",
              "src": "526:274:20",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4543,
                            "name": "_oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4536,
                            "src": "592:8:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                              "typeString": "contract Oracle[] memory"
                            }
                          },
                          "id": 4544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "592:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 4545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "610:1:20",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "src": "592:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4542,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7923,
                        7924
                      ],
                      "referencedDeclaration": 7923,
                      "src": "584:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "584:28:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4548,
                  "nodeType": "ExpressionStatement",
                  "src": "584:28:20"
                },
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4562,
                                  "name": "_oracles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4536,
                                  "src": "738:8:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                                    "typeString": "contract Oracle[] memory"
                                  }
                                },
                                "id": 4564,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4563,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4550,
                                  "src": "747:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "738:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              ],
                              "id": 4561,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "730:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 4565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "730:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4567,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "762:1:20",
                                "subdenomination": null,
                                "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": 4566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "754:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 4568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "754:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "730:34:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 4560,
                        "name": "require",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          7923,
                          7924
                        ],
                        "referencedDeclaration": 7923,
                        "src": "722:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                          "typeString": "function (bool) pure"
                        }
                      },
                      "id": 4570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "722:43:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 4571,
                    "nodeType": "ExpressionStatement",
                    "src": "722:43:20"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4553,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4550,
                      "src": "639:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4554,
                        "name": "_oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4536,
                        "src": "643:8:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                          "typeString": "contract Oracle[] memory"
                        }
                      },
                      "id": 4555,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "643:15:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "639:19:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4572,
                  "initializationExpression": {
                    "assignments": [
                      4550
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4550,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4572,
                        "src": "627:6:20",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4549,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "627:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4552,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "636:1:20",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "627:10:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "660:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4557,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4550,
                        "src": "660:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4559,
                    "nodeType": "ExpressionStatement",
                    "src": "660:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "622:143:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4573,
                      "name": "oracles",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4526,
                      "src": "775:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                        "typeString": "contract Oracle[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4574,
                      "name": "_oracles",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4536,
                      "src": "785:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                        "typeString": "contract Oracle[] memory"
                      }
                    },
                    "src": "775:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                      "typeString": "contract Oracle[] storage ref"
                    }
                  },
                  "id": 4576,
                  "nodeType": "ExpressionStatement",
                  "src": "775:18:20"
                }
              ]
            },
            "documentation": "@dev Allows to create an oracle for a majority vote based on other oracles\n @param _oracles List of oracles taking part in the majority vote",
            "id": 4578,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 4539,
                    "name": "proxied",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4533,
                    "src": "498:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 4540,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4538,
                  "name": "Proxy",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6828,
                  "src": "492:5:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Proxy_$6828_$",
                    "typeString": "type(contract Proxy)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "492:14:20"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4533,
                  "name": "proxied",
                  "nodeType": "VariableDeclaration",
                  "scope": 4578,
                  "src": "441:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4532,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "441:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4536,
                  "name": "_oracles",
                  "nodeType": "VariableDeclaration",
                  "scope": 4578,
                  "src": "458:24:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_memory_ptr",
                    "typeString": "contract Oracle[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4534,
                      "name": "Oracle",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4841,
                      "src": "458:6:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Oracle_$4841",
                        "typeString": "contract Oracle"
                      }
                    },
                    "id": 4535,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "458:8:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage_ptr",
                      "typeString": "contract Oracle[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "440:43:20"
            },
            "returnParameters": {
              "id": 4541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "526:0:20"
            },
            "scope": 4579,
            "src": "429:371:20",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "208:594:20"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4580,
              "name": "Proxied",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6798,
              "src": "988:7:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Proxied_$6798",
                "typeString": "contract Proxied"
              }
            },
            "id": 4581,
            "nodeType": "InheritanceSpecifier",
            "src": "988:7:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4582,
              "name": "Oracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4841,
              "src": "997:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Oracle_$4841",
                "typeString": "contract Oracle"
              }
            },
            "id": 4583,
            "nodeType": "InheritanceSpecifier",
            "src": "997:6:20"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4584,
              "name": "MajorityOracleData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "1005:18:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MajorityOracleData_$4527",
                "typeString": "contract MajorityOracleData"
              }
            },
            "id": 4585,
            "nodeType": "InheritanceSpecifier",
            "src": "1005:18:20"
          }
        ],
        "contractDependencies": [
          4527,
          4841,
          6798
        ],
        "contractKind": "contract",
        "documentation": "@title Majority oracle contract - Allows to resolve an event based on multiple oracles with majority vote\n @author Stefan George - <stefan@gnosis.pm>",
        "fullyImplemented": true,
        "id": 4772,
        "linearizedBaseContracts": [
          4772,
          4527,
          4841,
          6798
        ],
        "name": "MajorityOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 4744,
              "nodeType": "Block",
              "src": "1298:1145:20",
              "statements": [
                {
                  "assignments": [
                    4593
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4593,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1308:6:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4592,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1308:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4594,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1308:6:20"
                },
                {
                  "assignments": [
                    4598
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4598,
                      "name": "outcomes",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1324:21:20",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                        "typeString": "int256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4596,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "1324:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4597,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1324:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4605,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4602,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4526,
                          "src": "1358:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                            "typeString": "contract Oracle[] storage ref"
                          }
                        },
                        "id": 4603,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1358:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1348:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (int256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4599,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "1352:3:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4600,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1352:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      }
                    },
                    "id": 4604,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1348:25:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                      "typeString": "int256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1324:49:20"
                },
                {
                  "assignments": [
                    4609
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4609,
                      "name": "validations",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1383:25:20",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4607,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1383:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4608,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1383:6:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4616,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4613,
                          "name": "oracles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4526,
                          "src": "1422:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                            "typeString": "contract Oracle[] storage ref"
                          }
                        },
                        "id": 4614,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1422:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4612,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1411:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4610,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1415:4:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4611,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1415:6:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 4615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1411:26:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1383:54:20"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4628,
                            "name": "oracles",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4526,
                            "src": "1500:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                              "typeString": "contract Oracle[] storage ref"
                            }
                          },
                          "id": 4630,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4629,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4593,
                            "src": "1508:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1500:10:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Oracle_$4841",
                            "typeString": "contract Oracle"
                          }
                        },
                        "id": 4631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isOutcomeSet",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4835,
                        "src": "1500:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                          "typeString": "function () view external returns (bool)"
                        }
                      },
                      "id": 4632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1500:25:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 4687,
                    "nodeType": "IfStatement",
                    "src": "1496:494:20",
                    "trueBody": {
                      "id": 4686,
                      "nodeType": "Block",
                      "src": "1527:463:20",
                      "statements": [
                        {
                          "assignments": [
                            4634
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 4634,
                              "name": "_outcome",
                              "nodeType": "VariableDeclaration",
                              "scope": 4686,
                              "src": "1545:12:20",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "typeName": {
                                "id": 4633,
                                "name": "int",
                                "nodeType": "ElementaryTypeName",
                                "src": "1545:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 4640,
                          "initialValue": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4635,
                                  "name": "oracles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4526,
                                  "src": "1560:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                                    "typeString": "contract Oracle[] storage ref"
                                  }
                                },
                                "id": 4637,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4636,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4593,
                                  "src": "1568:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1560:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Oracle_$4841",
                                  "typeString": "contract Oracle"
                                }
                              },
                              "id": 4638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getOutcome",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4840,
                              "src": "1560:21:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_int256_$",
                                "typeString": "function () view external returns (int256)"
                              }
                            },
                            "id": 4639,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1560:23:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "1545:38:20"
                        },
                        {
                          "body": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 4655,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 4651,
                                "name": "_outcome",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4634,
                                "src": "1655:8:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4652,
                                  "name": "outcomes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4598,
                                  "src": "1667:8:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                    "typeString": "int256[] memory"
                                  }
                                },
                                "id": 4654,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4653,
                                  "name": "j",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4642,
                                  "src": "1676:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1667:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "1655:23:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4668,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4664,
                                    "name": "validations",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4609,
                                    "src": "1809:11:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 4666,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4665,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4642,
                                    "src": "1821:1:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1809:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 4667,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1827:1:20",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "1809:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 4683,
                              "nodeType": "IfStatement",
                              "src": "1805:171:20",
                              "trueBody": {
                                "id": 4682,
                                "nodeType": "Block",
                                "src": "1830:146:20",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4673,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4669,
                                          "name": "outcomes",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4598,
                                          "src": "1856:8:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                            "typeString": "int256[] memory"
                                          }
                                        },
                                        "id": 4671,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4670,
                                          "name": "j",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4642,
                                          "src": "1865:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "1856:11:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 4672,
                                        "name": "_outcome",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4634,
                                        "src": "1870:8:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "src": "1856:22:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "id": 4674,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1856:22:20"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4679,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 4675,
                                          "name": "validations",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4609,
                                          "src": "1904:11:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 4677,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 4676,
                                          "name": "j",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4642,
                                          "src": "1916:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "1904:14:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 4678,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1921:1:20",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "1904:18:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 4680,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1904:18:20"
                                  },
                                  {
                                    "id": 4681,
                                    "nodeType": "Break",
                                    "src": "1948:5:20"
                                  }
                                ]
                              }
                            },
                            "id": 4684,
                            "nodeType": "IfStatement",
                            "src": "1651:325:20",
                            "trueBody": {
                              "id": 4663,
                              "nodeType": "Block",
                              "src": "1680:99:20",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4660,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 4656,
                                        "name": "validations",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4609,
                                        "src": "1706:11:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                          "typeString": "uint256[] memory"
                                        }
                                      },
                                      "id": 4658,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 4657,
                                        "name": "j",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4642,
                                        "src": "1718:1:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "1706:14:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 4659,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1724:1:20",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "1706:19:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4661,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1706:19:20"
                                },
                                {
                                  "id": 4662,
                                  "nodeType": "Break",
                                  "src": "1751:5:20"
                                }
                              ]
                            }
                          },
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4647,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4645,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4642,
                              "src": "1618:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 4646,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4593,
                              "src": "1623:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1618:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 4685,
                          "initializationExpression": {
                            "assignments": [
                              4642
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 4642,
                                "name": "j",
                                "nodeType": "VariableDeclaration",
                                "scope": 4685,
                                "src": "1606:6:20",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "typeName": {
                                  "id": 4641,
                                  "name": "uint",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1606:4:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "value": null,
                                "visibility": "internal"
                              }
                            ],
                            "id": 4644,
                            "initialValue": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 4643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1615:1:20",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "1606:10:20"
                          },
                          "loopExpression": {
                            "expression": {
                              "argumentTypes": null,
                              "id": 4649,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "1626:3:20",
                              "subExpression": {
                                "argumentTypes": null,
                                "id": 4648,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4642,
                                "src": "1626:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4650,
                            "nodeType": "ExpressionStatement",
                            "src": "1626:3:20"
                          },
                          "nodeType": "ForStatement",
                          "src": "1601:375:20"
                        }
                      ]
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4624,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4621,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4593,
                      "src": "1459:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4622,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "1463:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4623,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1463:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1459:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4688,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4619,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4617,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "1452:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4618,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1456:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1452:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4620,
                    "nodeType": "ExpressionStatement",
                    "src": "1452:5:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1479:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4625,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "1479:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4627,
                    "nodeType": "ExpressionStatement",
                    "src": "1479:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "1447:543:20"
                },
                {
                  "assignments": [
                    4690
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4690,
                      "name": "outcomeValidations",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "1999:23:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4689,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1999:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4692,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2025:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1999:27:20"
                },
                {
                  "assignments": [
                    4694
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4694,
                      "name": "outcomeIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 4744,
                      "src": "2036:17:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4693,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2036:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4696,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2056:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2036:21:20"
                },
                {
                  "body": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4712,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4708,
                          "name": "validations",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4609,
                          "src": "2120:11:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 4710,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4709,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4593,
                          "src": "2132:1:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2120:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 4711,
                        "name": "outcomeValidations",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "2137:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2120:35:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 4724,
                    "nodeType": "IfStatement",
                    "src": "2116:143:20",
                    "trueBody": {
                      "id": 4723,
                      "nodeType": "Block",
                      "src": "2157:102:20",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4713,
                              "name": "outcomeValidations",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4690,
                              "src": "2175:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4714,
                                "name": "validations",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4609,
                                "src": "2196:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 4716,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 4715,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4593,
                                "src": "2208:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2196:14:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2175:35:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4718,
                          "nodeType": "ExpressionStatement",
                          "src": "2175:35:20"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 4719,
                              "name": "outcomeIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4694,
                              "src": "2228:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 4720,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4593,
                              "src": "2243:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2228:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4722,
                          "nodeType": "ExpressionStatement",
                          "src": "2228:16:20"
                        }
                      ]
                    }
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4701,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4593,
                      "src": "2079:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4702,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "2083:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4703,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2083:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2079:18:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4725,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4699,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4697,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "2072:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4698,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2076:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2072:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4700,
                    "nodeType": "ExpressionStatement",
                    "src": "2072:5:20"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2099:3:20",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4705,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4593,
                        "src": "2099:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4707,
                    "nodeType": "ExpressionStatement",
                    "src": "2099:3:20"
                  },
                  "nodeType": "ForStatement",
                  "src": "2067:192:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4731,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4726,
                        "name": "outcomeValidations",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "2308:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 4727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2329:1:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "2308:22:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4729,
                        "name": "oracles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4526,
                        "src": "2333:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_Oracle_$4841_$dyn_storage",
                          "typeString": "contract Oracle[] storage ref"
                        }
                      },
                      "id": 4730,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2333:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2308:39:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4743,
                  "nodeType": "IfStatement",
                  "src": "2304:133:20",
                  "trueBody": {
                    "id": 4742,
                    "nodeType": "Block",
                    "src": "2349:88:20",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4732,
                            "name": "outcomeSet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4588,
                            "src": "2363:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 4733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2376:4:20",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2363:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4735,
                        "nodeType": "ExpressionStatement",
                        "src": "2363:17:20"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4736,
                            "name": "outcome",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4590,
                            "src": "2394:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4737,
                              "name": "outcomes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4598,
                              "src": "2404:8:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                "typeString": "int256[] memory"
                              }
                            },
                            "id": 4739,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4738,
                              "name": "outcomeIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4694,
                              "src": "2413:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2404:22:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "2394:32:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 4741,
                        "nodeType": "ExpressionStatement",
                        "src": "2394:32:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Allows to registers oracles for a majority vote\n @return Is outcome set?\n @return Outcome",
            "id": 4745,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStatusAndOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4586,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1216:2:20"
            },
            "returnParameters": {
              "id": 4591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4588,
                  "name": "outcomeSet",
                  "nodeType": "VariableDeclaration",
                  "scope": 4745,
                  "src": "1264:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4587,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4590,
                  "name": "outcome",
                  "nodeType": "VariableDeclaration",
                  "scope": 4745,
                  "src": "1281:11:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 4589,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1281:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1263:30:20"
            },
            "scope": 4772,
            "src": "1188:1255:20",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4757,
              "nodeType": "Block",
              "src": "2607:87:20",
              "statements": [
                {
                  "assignments": [
                    4751,
                    null
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4751,
                      "name": "outcomeSet",
                      "nodeType": "VariableDeclaration",
                      "scope": 4757,
                      "src": "2618:15:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4750,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2618:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    null
                  ],
                  "id": 4754,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4752,
                      "name": "getStatusAndOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4745,
                      "src": "2639:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_int256_$",
                        "typeString": "function () view returns (bool,int256)"
                      }
                    },
                    "id": 4753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2639:21:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
                      "typeString": "tuple(bool,int256)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2617:43:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4755,
                    "name": "outcomeSet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4751,
                    "src": "2677:10:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4749,
                  "id": 4756,
                  "nodeType": "Return",
                  "src": "2670:17:20"
                }
              ]
            },
            "documentation": "@dev Returns if winning outcome is set\n @return Is outcome set?",
            "id": 4758,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isOutcomeSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4746,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2549:2:20"
            },
            "returnParameters": {
              "id": 4749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4748,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4758,
                  "src": "2597:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4747,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2597:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2596:6:20"
            },
            "scope": 4772,
            "src": "2528:166:20",
            "stateMutability": "view",
            "superFunction": 4835,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4770,
              "nodeType": "Block",
              "src": "2837:94:20",
              "statements": [
                {
                  "assignments": [
                    null,
                    4764
                  ],
                  "declarations": [
                    null,
                    {
                      "constant": false,
                      "id": 4764,
                      "name": "winningOutcome",
                      "nodeType": "VariableDeclaration",
                      "scope": 4770,
                      "src": "2850:18:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 4763,
                        "name": "int",
                        "nodeType": "ElementaryTypeName",
                        "src": "2850:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4767,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4765,
                      "name": "getStatusAndOutcome",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4745,
                      "src": "2872:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_int256_$",
                        "typeString": "function () view returns (bool,int256)"
                      }
                    },
                    "id": 4766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2872:21:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$",
                      "typeString": "tuple(bool,int256)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2847:46:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4768,
                    "name": "winningOutcome",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4764,
                    "src": "2910:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 4762,
                  "id": 4769,
                  "nodeType": "Return",
                  "src": "2903:21:20"
                }
              ]
            },
            "documentation": "@dev Returns winning outcome\n @return Outcome",
            "id": 4771,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getOutcome",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4759,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2780:2:20"
            },
            "returnParameters": {
              "id": 4762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4761,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4771,
                  "src": "2828:3:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 4760,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2828:3:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2827:5:20"
            },
            "scope": 4772,
            "src": "2761:170:20",
            "stateMutability": "view",
            "superFunction": 4840,
            "visibility": "public"
          }
        ],
        "scope": 4773,
        "src": "961:1972:20"
      }
    ],
    "src": "0:2934:20"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.6+commit.b259423e.Emscripten.clang"
  },
  "networks": {
    "3": {
      "events": {},
      "links": {},
      "address": "0xfa79712c284739d17afbe12ade9b94290de76fd9",
      "transactionHash": "0x0d2a86557c95bf9ff2149fd6f006b6b2682b14f8eceb20d1953adbdb1cbccded"
    },
    "4": {
      "events": {},
      "links": {},
      "address": "0x4e09ae531d709b24a53a4bbfa92e11489e5697fe",
      "transactionHash": "0xe3ccce3f32d8811e4ca54c448a0918a6859d9ad8ed200acd52d570b6d7cfec24"
    },
    "42": {
      "events": {},
      "links": {},
      "address": "0xf009c8b825c777bf8c2b7c01171b2fdf030a0ee2",
      "transactionHash": "0xeec2f1b0e518090d4db4918a6f0be208a2cb32957a2d8a02d59cb6abc4c9623e"
    },
    "437894314312": {
      "events": {},
      "links": {},
      "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7",
      "transactionHash": "0xb00c2e4cc9ef2a3d744d925036d2a10baf21569987f47556ec5642923dfc55e9"
    }
  },
  "schemaVersion": "3.0.11",
  "updatedAt": "2019-09-20T17:46:52.207Z",
  "devdoc": {
    "author": "Stefan George - <stefan@gnosis.pm>",
    "methods": {
      "getOutcome()": {
        "details": "Returns winning outcome",
        "return": "Outcome"
      },
      "getStatusAndOutcome()": {
        "details": "Allows to registers oracles for a majority vote",
        "return": "Is outcome set?Outcome"
      },
      "isOutcomeSet()": {
        "details": "Returns if winning outcome is set",
        "return": "Is outcome set?"
      }
    },
    "title": "Majority oracle contract - Allows to resolve an event based on multiple oracles with majority vote"
  },
  "userdoc": {
    "methods": {}
  }
}