{
  "contractName": "Arbitrator",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "metadata",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "foreignProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "foreignChainId",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "arbitration_bounties",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "realitio",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "fee_paid",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "requester",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "name": "LogRequestArbitration",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "realitio",
          "type": "address"
        }
      ],
      "name": "LogSetRealitio",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "LogSetQuestionFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "LogSetDisputeFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "LogSetCustomDisputeFee",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "realitycheck",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "setRealitio",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setDisputeFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setCustomDisputeFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getDisputeFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setQuestionFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "answerer",
          "type": "address"
        }
      ],
      "name": "submitAnswerByArbitrator",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "payee_if_wrong",
          "type": "address"
        },
        {
          "name": "last_history_hash",
          "type": "bytes32"
        },
        {
          "name": "last_answer_or_commitment_id",
          "type": "bytes32"
        },
        {
          "name": "last_answerer",
          "type": "address"
        }
      ],
      "name": "assignWinnerAndSubmitAnswerByArbitrator",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "cancelArbitration",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        }
      ],
      "name": "requestArbitration",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "callWithdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_metadata",
          "type": "string"
        }
      ],
      "name": "setMetaData",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.4.25;\n\nimport './Owned.sol';\nimport './IArbitrator.sol';\nimport './IRealitio.sol';\nimport './IERC20.sol';\n\ncontract Arbitrator is Owned, IArbitrator {\n\n    IRealitio public realitio;\n\n    mapping(bytes32 => uint256) public arbitration_bounties;\n\n    uint256 dispute_fee;\n    mapping(bytes32 => uint256) custom_dispute_fees;\n\n    string public metadata;\n\n    event LogRequestArbitration(\n        bytes32 indexed question_id,\n        uint256 fee_paid,\n        address requester,\n        uint256 remaining\n    );\n\n    event LogSetRealitio(\n        address realitio\n    );\n\n    event LogSetQuestionFee(\n        uint256 fee\n    );\n\n\n    event LogSetDisputeFee(\n        uint256 fee\n    );\n\n    event LogSetCustomDisputeFee(\n        bytes32 indexed question_id,\n        uint256 fee\n    );\n\n    /// @notice Constructor. Sets the deploying address as owner.\n    constructor() \n    public {\n        owner = msg.sender;\n    }\n\n    /// @notice Returns the Realitio contract address - deprecated in favour of realitio()\n    function realitycheck() \n    external view returns(IRealitio) {\n        return realitio;\n    }\n\n    /// @notice Set the Reality Check contract address\n    /// @param addr The address of the Reality Check contract\n    function setRealitio(address addr) \n        onlyOwner \n    public {\n        realitio = IRealitio(addr);\n        emit LogSetRealitio(addr);\n    }\n\n    /// @notice Set the default fee\n    /// @param fee The default fee amount\n    function setDisputeFee(uint256 fee) \n        onlyOwner \n    public {\n        dispute_fee = fee;\n        emit LogSetDisputeFee(fee);\n    }\n\n    /// @notice Set a custom fee for this particular question\n    /// @param question_id The question in question\n    /// @param fee The fee amount\n    function setCustomDisputeFee(bytes32 question_id, uint256 fee) \n        onlyOwner \n    public {\n        custom_dispute_fees[question_id] = fee;\n        emit LogSetCustomDisputeFee(question_id, fee);\n    }\n\n    /// @notice Return the dispute fee for the specified question. 0 indicates that we won't arbitrate it.\n    /// @param question_id The question in question\n    /// @dev Uses a general default, but can be over-ridden on a question-by-question basis.\n    function getDisputeFee(bytes32 question_id) \n    public view returns (uint256) {\n        return (custom_dispute_fees[question_id] > 0) ? custom_dispute_fees[question_id] : dispute_fee;\n    }\n\n    /// @notice Set a fee for asking a question with us as the arbitrator\n    /// @param fee The fee amount\n    /// @dev Default is no fee. Unlike the dispute fee, 0 is an acceptable setting.\n    /// You could set an impossibly high fee if you want to prevent us being used as arbitrator unless we submit the question.\n    /// (Submitting the question ourselves is not implemented here.)\n    /// This fee can be used as a revenue source, an anti-spam measure, or both.\n    function setQuestionFee(uint256 fee) \n        onlyOwner \n    public {\n        realitio.setQuestionFee(fee);\n        emit LogSetQuestionFee(fee);\n    }\n\n    /// @notice Submit the arbitrator's answer to a question.\n    /// @param question_id The question in question\n    /// @param answer The answer\n    /// @param answerer The answerer. If arbitration changed the answer, it should be the payer. If not, the old answerer.\n    function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) \n        onlyOwner \n    public {\n        delete arbitration_bounties[question_id];\n        realitio.submitAnswerByArbitrator(question_id, answer, answerer);\n    }\n\n    /// @notice Submit the arbitrator's answer to a question, assigning the winner automatically.\n    /// @param question_id The question in question\n    /// @param answer The answer\n    /// @param payee_if_wrong The account to by credited as winner if the last answer given is wrong, usually the account that paid the arbitrator\n    /// @param last_history_hash The history hash before the final one\n    /// @param last_answer_or_commitment_id The last answer given, or the commitment ID if it was a commitment.\n    /// @param last_answerer The address that supplied the last answer\n    function assignWinnerAndSubmitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address payee_if_wrong, bytes32 last_history_hash, bytes32 last_answer_or_commitment_id, address last_answerer) \n        onlyOwner \n    public {\n        delete arbitration_bounties[question_id];\n        realitio.assignWinnerAndSubmitAnswerByArbitrator(question_id, answer, payee_if_wrong, last_history_hash, last_answer_or_commitment_id, last_answerer);\n    }\n\n    /// @notice Cancel a previous arbitration request\n    /// @dev This is intended for situations where the arbitration is happening non-atomically and the fee or something change.\n    /// @param question_id The question in question\n    function cancelArbitration(bytes32 question_id) \n        onlyOwner \n    public {\n        realitio.cancelArbitration(question_id);\n    }\n\n    /// @notice Request arbitration, freezing the question until we send submitAnswerByArbitrator\n    /// @dev The bounty can be paid only in part, in which case the last person to pay will be considered the payer\n    /// Will trigger an error if the notification fails, eg because the question has already been finalized\n    /// @param question_id The question in question\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function requestArbitration(bytes32 question_id, uint256 max_previous) \n    external payable returns (bool) {\n\n        uint256 arbitration_fee = getDisputeFee(question_id);\n        require(arbitration_fee > 0, \"The arbitrator must have set a non-zero fee for the question\");\n\n        arbitration_bounties[question_id] += msg.value;\n        uint256 paid = arbitration_bounties[question_id];\n\n        if (paid >= arbitration_fee) {\n            realitio.notifyOfArbitrationRequest(question_id, msg.sender, max_previous);\n            emit LogRequestArbitration(question_id, msg.value, msg.sender, 0);\n            return true;\n        } else {\n            require(!realitio.isFinalized(question_id), \"The question must not have been finalized\");\n            emit LogRequestArbitration(question_id, msg.value, msg.sender, arbitration_fee - paid);\n            return false;\n        }\n\n    }\n\n    /// @notice Withdraw any accumulated ETH fees to the specified address\n    /// @param addr The address to which the balance should be sent\n    function withdraw(address addr) \n        onlyOwner \n    public {\n        addr.transfer(address(this).balance); \n    }\n\n    /// @notice Withdraw any accumulated token fees to the specified address\n    /// @param addr The address to which the balance should be sent\n    /// @dev Only needed if the Realitio contract used is using an ERC20 token\n    /// @dev Also only normally useful if a per-question fee is set, otherwise we only have ETH.\n    function withdrawERC20(IERC20 _token, address addr) \n        onlyOwner \n    public {\n        uint256 bal = _token.balanceOf(address(this));\n        IERC20(_token).transfer(addr, bal); \n    }\n\n    function() \n    external payable {\n    }\n\n    /// @notice Withdraw any accumulated question fees from the specified address into this contract\n    /// @dev Funds can then be liberated from this contract with our withdraw() function\n    /// @dev This works in the same way whether the realitio contract is using ETH or an ERC20 token\n    function callWithdraw() \n        onlyOwner \n    public {\n        realitio.withdraw(); \n    }\n\n    /// @notice Set a metadata string, expected to be JSON, containing things like arbitrator TOS address\n    function setMetaData(string _metadata) \n        onlyOwner\n    external {\n        metadata = _metadata;\n    }\n\n}\n",
  "sourcePath": "/home/ed/working/realitio-contracts/truffle/contracts/Arbitrator.sol",
  "ast": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Arbitrator.sol",
    "exportedSymbols": {
      "Arbitrator": [
        390
      ]
    },
    "id": 391,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Owned.sol",
        "file": "./Owned.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 2749,
        "src": "26:21:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IArbitrator.sol",
        "file": "./IArbitrator.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1271,
        "src": "48:27:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IRealitio.sol",
        "file": "./IRealitio.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1711,
        "src": "76:25:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IERC20.sol",
        "file": "./IERC20.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1353,
        "src": "102:22:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2748,
              "src": "149:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$2748",
                "typeString": "contract Owned"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "149:5:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 8,
              "name": "IArbitrator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1270,
              "src": "156:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IArbitrator_$1270",
                "typeString": "contract IArbitrator"
              }
            },
            "id": 9,
            "nodeType": "InheritanceSpecifier",
            "src": "156:11:0"
          }
        ],
        "contractDependencies": [
          1365,
          1270,
          2748
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 390,
        "linearizedBaseContracts": [
          390,
          1270,
          2748,
          1365
        ],
        "name": "Arbitrator",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 11,
            "name": "realitio",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "175:25:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IRealitio_$1710",
              "typeString": "contract IRealitio"
            },
            "typeName": {
              "contractScope": null,
              "id": 10,
              "name": "IRealitio",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1710,
              "src": "175:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IRealitio_$1710",
                "typeString": "contract IRealitio"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 15,
            "name": "arbitration_bounties",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "207:55:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 14,
              "keyType": {
                "id": 12,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "215:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "207:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 13,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "226:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 17,
            "name": "dispute_fee",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "269:19:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 16,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "269:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 21,
            "name": "custom_dispute_fees",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "294:47:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 20,
              "keyType": {
                "id": 18,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "302:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "294:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 19,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "313:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 23,
            "name": "metadata",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "348:22:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "348:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 33,
            "name": "LogRequestArbitration",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 32,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "414:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "414:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27,
                  "indexed": false,
                  "name": "fee_paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "451:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "451:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 29,
                  "indexed": false,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "477:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 28,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "477:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31,
                  "indexed": false,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "504:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 30,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "504:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "404:123:0"
            },
            "src": "377:151:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 37,
            "name": "LogSetRealitio",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 36,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35,
                  "indexed": false,
                  "name": "realitio",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "564:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 34,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "554:32:0"
            },
            "src": "534:53:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 41,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 41,
                  "src": "626:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "616:27:0"
            },
            "src": "593:51:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 45,
            "name": "LogSetDisputeFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "683:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "683:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "673:27:0"
            },
            "src": "651:50:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 51,
            "name": "LogSetCustomDisputeFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 50,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 47,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 51,
                  "src": "745:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 46,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "745:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 51,
                  "src": "782:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 48,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "782:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "735:64:0"
            },
            "src": "707:93:0"
          },
          {
            "body": {
              "id": 59,
              "nodeType": "Block",
              "src": "898:35:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 57,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 54,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2715,
                      "src": "908:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 55,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "916:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 56,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "916:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "908:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 58,
                  "nodeType": "ExpressionStatement",
                  "src": "908:18:0"
                }
              ]
            },
            "documentation": "@notice Constructor. Sets the deploying address as owner.",
            "id": 60,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 52,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "883:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 53,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "898:0:0"
            },
            "scope": 390,
            "src": "872:61:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 67,
              "nodeType": "Block",
              "src": "1092:32:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 65,
                    "name": "realitio",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11,
                    "src": "1109:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "functionReturnParameters": 64,
                  "id": 66,
                  "nodeType": "Return",
                  "src": "1102:15:0"
                }
              ]
            },
            "documentation": "@notice Returns the Realitio contract address - deprecated in favour of realitio()",
            "id": 68,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "realitycheck",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 61,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1051:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 64,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 68,
                  "src": "1081:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IRealitio_$1710",
                    "typeString": "contract IRealitio"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 62,
                    "name": "IRealitio",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1710,
                    "src": "1081:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1080:11:0"
            },
            "scope": 390,
            "src": "1030:94:0",
            "stateMutability": "view",
            "superFunction": 1192,
            "visibility": "external"
          },
          {
            "body": {
              "id": 85,
              "nodeType": "Block",
              "src": "1313:78:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 79,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 75,
                      "name": "realitio",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11,
                      "src": "1323:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRealitio_$1710",
                        "typeString": "contract IRealitio"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 77,
                          "name": "addr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 70,
                          "src": "1344:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 76,
                        "name": "IRealitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1710,
                        "src": "1334:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IRealitio_$1710_$",
                          "typeString": "type(contract IRealitio)"
                        }
                      },
                      "id": 78,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1334:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRealitio_$1710",
                        "typeString": "contract IRealitio"
                      }
                    },
                    "src": "1323:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "id": 80,
                  "nodeType": "ExpressionStatement",
                  "src": "1323:26:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 82,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 70,
                        "src": "1379:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 81,
                      "name": "LogSetRealitio",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37,
                      "src": "1364:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 83,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1364:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 84,
                  "nodeType": "EmitStatement",
                  "src": "1359:25:0"
                }
              ]
            },
            "documentation": "@notice Set the Reality Check contract address\n @param addr The address of the Reality Check contract",
            "id": 86,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 73,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 72,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1291:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1291:9:0"
              }
            ],
            "name": "setRealitio",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 71,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 70,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "1268:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 69,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1268:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1267:14:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1313:0:0"
            },
            "scope": 390,
            "src": "1247:144:0",
            "stateMutability": "nonpayable",
            "superFunction": 1197,
            "visibility": "public"
          },
          {
            "body": {
              "id": 101,
              "nodeType": "Block",
              "src": "1542:70:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 95,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 93,
                      "name": "dispute_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17,
                      "src": "1552:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 94,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1566:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1552:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 96,
                  "nodeType": "ExpressionStatement",
                  "src": "1552:17:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 98,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 88,
                        "src": "1601:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 97,
                      "name": "LogSetDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1584:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1584:21:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 100,
                  "nodeType": "EmitStatement",
                  "src": "1579:26:0"
                }
              ]
            },
            "documentation": "@notice Set the default fee\n @param fee The default fee amount",
            "id": 102,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 91,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 90,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1520:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1520:9:0"
              }
            ],
            "name": "setDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 102,
                  "src": "1498:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1498:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1497:13:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 92,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1542:0:0"
            },
            "scope": 390,
            "src": "1475:137:0",
            "stateMutability": "nonpayable",
            "superFunction": 1202,
            "visibility": "public"
          },
          {
            "body": {
              "id": 122,
              "nodeType": "Block",
              "src": "1860:110:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 111,
                        "name": "custom_dispute_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "1870:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 113,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 112,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 104,
                        "src": "1890:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1870:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 114,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 106,
                      "src": "1905:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1870:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 116,
                  "nodeType": "ExpressionStatement",
                  "src": "1870:38:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 118,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 104,
                        "src": "1946:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 119,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1959:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 117,
                      "name": "LogSetCustomDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 51,
                      "src": "1923:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1923:40:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 121,
                  "nodeType": "EmitStatement",
                  "src": "1918:45:0"
                }
              ]
            },
            "documentation": "@notice Set a custom fee for this particular question\n @param question_id The question in question\n @param fee The fee amount",
            "id": 123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 109,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 108,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1838:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1838:9:0"
              }
            ],
            "name": "setCustomDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 104,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "1795:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 103,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1795:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 106,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "1816:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1794:34:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1860:0:0"
            },
            "scope": 390,
            "src": "1766:204:0",
            "stateMutability": "nonpayable",
            "superFunction": 1209,
            "visibility": "public"
          },
          {
            "body": {
              "id": 142,
              "nodeType": "Block",
              "src": "2307:111:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 130,
                              "name": "custom_dispute_fees",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "2325:19:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 132,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 131,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 125,
                              "src": "2345:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2325:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2360:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "2325:36:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 135,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2324:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 139,
                      "name": "dispute_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17,
                      "src": "2400:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2324:87:0",
                    "trueExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 136,
                        "name": "custom_dispute_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "2365:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 138,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 137,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 125,
                        "src": "2385:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2365:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 129,
                  "id": 141,
                  "nodeType": "Return",
                  "src": "2317:94:0"
                }
              ]
            },
            "documentation": "@notice Return the dispute fee for the specified question. 0 indicates that we won't arbitrate it.\n @param question_id The question in question\n @dev Uses a general default, but can be over-ridden on a question-by-question basis.",
            "id": 143,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 125,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 143,
                  "src": "2251:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2251:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2250:21:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 128,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 143,
                  "src": "2298:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 127,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2298:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2297:9:0"
            },
            "scope": 390,
            "src": "2228:190:0",
            "stateMutability": "view",
            "superFunction": 1216,
            "visibility": "public"
          },
          {
            "body": {
              "id": 160,
              "nodeType": "Block",
              "src": "2961:82:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 153,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 145,
                        "src": "2995:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 150,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "2971:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setQuestionFee",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1460,
                      "src": "2971:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2971:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 155,
                  "nodeType": "ExpressionStatement",
                  "src": "2971:28:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 157,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 145,
                        "src": "3032:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 156,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41,
                      "src": "3014:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3014:22:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 159,
                  "nodeType": "EmitStatement",
                  "src": "3009:27:0"
                }
              ]
            },
            "documentation": "@notice Set a fee for asking a question with us as the arbitrator\n @param fee The fee amount\n @dev Default is no fee. Unlike the dispute fee, 0 is an acceptable setting.\n You could set an impossibly high fee if you want to prevent us being used as arbitrator unless we submit the question.\n (Submitting the question ourselves is not implemented here.)\n This fee can be used as a revenue source, an anti-spam measure, or both.",
            "id": 161,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 148,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 147,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "2939:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2939:9:0"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 145,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 161,
                  "src": "2917:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2917:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2916:13:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 149,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2961:0:0"
            },
            "scope": 390,
            "src": "2893:150:0",
            "stateMutability": "nonpayable",
            "superFunction": 1221,
            "visibility": "public"
          },
          {
            "body": {
              "id": 185,
              "nodeType": "Block",
              "src": "3439:131:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "3449:40:0",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 172,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "3456:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 174,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 173,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "3477:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3456:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "3449:40:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 180,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "3533:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 181,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 165,
                        "src": "3546:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 182,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "3554:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 177,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "3499:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "submitAnswerByArbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "3499:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3499:64:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 184,
                  "nodeType": "ExpressionStatement",
                  "src": "3499:64:0"
                }
              ]
            },
            "documentation": "@notice Submit the arbitrator's answer to a question.\n @param question_id The question in question\n @param answer The answer\n @param answerer The answerer. If arbitration changed the answer, it should be the payer. If not, the old answerer.",
            "id": 186,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 170,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 169,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "3417:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3417:9:0"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 163,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3353:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3353:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 165,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3374:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 164,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3374:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 167,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3390:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3390:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3352:55:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 171,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3439:0:0"
            },
            "scope": 390,
            "src": "3319:251:0",
            "stateMutability": "nonpayable",
            "superFunction": 1230,
            "visibility": "public"
          },
          {
            "body": {
              "id": 219,
              "nodeType": "Block",
              "src": "4389:216:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4399:40:0",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 203,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "4406:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 205,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 204,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 188,
                        "src": "4427:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4406:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 207,
                  "nodeType": "ExpressionStatement",
                  "src": "4399:40:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 211,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 188,
                        "src": "4498:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 212,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 190,
                        "src": "4511:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 213,
                        "name": "payee_if_wrong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "4519:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 214,
                        "name": "last_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 194,
                        "src": "4535:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 215,
                        "name": "last_answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 196,
                        "src": "4554:28:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 216,
                        "name": "last_answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 198,
                        "src": "4584:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 208,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "4449:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "assignWinnerAndSubmitAnswerByArbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1704,
                      "src": "4449:48:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,bytes32,bytes32,address) external"
                      }
                    },
                    "id": 217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4449:149:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 218,
                  "nodeType": "ExpressionStatement",
                  "src": "4449:149:0"
                }
              ]
            },
            "documentation": "@notice Submit the arbitrator's answer to a question, assigning the winner automatically.\n @param question_id The question in question\n @param answer The answer\n @param payee_if_wrong The account to by credited as winner if the last answer given is wrong, usually the account that paid the arbitrator\n @param last_history_hash The history hash before the final one\n @param last_answer_or_commitment_id The last answer given, or the commitment ID if it was a commitment.\n @param last_answerer The address that supplied the last answer",
            "id": 220,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 201,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 200,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "4367:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4367:9:0"
              }
            ],
            "name": "assignWinnerAndSubmitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 188,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4209:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 187,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4209:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4230:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4230:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 192,
                  "name": "payee_if_wrong",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4246:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4246:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 194,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4270:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4270:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 196,
                  "name": "last_answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4297:36:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4297:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 198,
                  "name": "last_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4335:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4335:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4208:149:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 202,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4389:0:0"
            },
            "scope": 390,
            "src": "4160:445:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 233,
              "nodeType": "Block",
              "src": "4924:56:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 230,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 222,
                        "src": "4961:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 227,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "4934:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 229,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "cancelArbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1709,
                      "src": "4934:26:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4934:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 232,
                  "nodeType": "ExpressionStatement",
                  "src": "4934:39:0"
                }
              ]
            },
            "documentation": "@notice Cancel a previous arbitration request\n @dev This is intended for situations where the arbitration is happening non-atomically and the fee or something change.\n @param question_id The question in question",
            "id": 234,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 225,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 224,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "4902:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4902:9:0"
              }
            ],
            "name": "cancelArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 234,
                  "src": "4872:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4872:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4871:21:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 226,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4924:0:0"
            },
            "scope": 390,
            "src": "4845:135:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 317,
              "nodeType": "Block",
              "src": "5592:775:0",
              "statements": [
                {
                  "assignments": [
                    244
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 244,
                      "name": "arbitration_fee",
                      "nodeType": "VariableDeclaration",
                      "scope": 318,
                      "src": "5603:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 243,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5603:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 248,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 246,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "5643:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 245,
                      "name": "getDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 143,
                      "src": "5629:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view returns (uint256)"
                      }
                    },
                    "id": 247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5629:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5603:52:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 252,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 250,
                          "name": "arbitration_fee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 244,
                          "src": "5673:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5691:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5673:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652061726269747261746f72206d7573742068617665207365742061206e6f6e2d7a65726f2066656520666f7220746865207175657374696f6e",
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5694:62:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_72b298b87bad4c7d978585a27e4ac31ece329de5cea2dd93ff61a115129b1c48",
                          "typeString": "literal_string \"The arbitrator must have set a non-zero fee for the question\""
                        },
                        "value": "The arbitrator must have set a non-zero fee for the question"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_72b298b87bad4c7d978585a27e4ac31ece329de5cea2dd93ff61a115129b1c48",
                          "typeString": "literal_string \"The arbitrator must have set a non-zero fee for the question\""
                        }
                      ],
                      "id": 249,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5665:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 254,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5665:92:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 255,
                  "nodeType": "ExpressionStatement",
                  "src": "5665:92:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 256,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5768:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 258,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "5789:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5768:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 259,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "5805:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5805:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5768:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 262,
                  "nodeType": "ExpressionStatement",
                  "src": "5768:46:0"
                },
                {
                  "assignments": [
                    264
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 264,
                      "name": "paid",
                      "nodeType": "VariableDeclaration",
                      "scope": 318,
                      "src": "5824:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 263,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5824:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 268,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 265,
                      "name": "arbitration_bounties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15,
                      "src": "5839:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 267,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 266,
                      "name": "question_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "5860:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5839:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5824:48:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 269,
                      "name": "paid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 264,
                      "src": "5887:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 270,
                      "name": "arbitration_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "5895:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5887:23:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 315,
                    "nodeType": "Block",
                    "src": "6121:239:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 298,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "6143:34:0",
                              "subExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 296,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 236,
                                    "src": "6165:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 294,
                                    "name": "realitio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11,
                                    "src": "6144:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                                      "typeString": "contract IRealitio"
                                    }
                                  },
                                  "id": 295,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "isFinalized",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1537,
                                  "src": "6144:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                    "typeString": "function (bytes32) view external returns (bool)"
                                  }
                                },
                                "id": 297,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6144:33:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546865207175657374696f6e206d757374206e6f742068617665206265656e2066696e616c697a6564",
                              "id": 299,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6179:43:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e967b5d9fecc255e50879b27d4801cdeebbadcb0d4ff678250ec0b680707bc3f",
                                "typeString": "literal_string \"The question must not have been finalized\""
                              },
                              "value": "The question must not have been finalized"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_e967b5d9fecc255e50879b27d4801cdeebbadcb0d4ff678250ec0b680707bc3f",
                                "typeString": "literal_string \"The question must not have been finalized\""
                              }
                            ],
                            "id": 293,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "6135:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6135:88:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 301,
                        "nodeType": "ExpressionStatement",
                        "src": "6135:88:0"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 303,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "6264:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 304,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6277:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 305,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6277:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 306,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6288:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 307,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6288:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 310,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 308,
                                "name": "arbitration_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 244,
                                "src": "6300:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 309,
                                "name": "paid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 264,
                                "src": "6318:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "6300:22:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 302,
                            "name": "LogRequestArbitration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "6242:21:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,uint256,address,uint256)"
                            }
                          },
                          "id": 311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6242:81:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 312,
                        "nodeType": "EmitStatement",
                        "src": "6237:86:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6344:5:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 242,
                        "id": 314,
                        "nodeType": "Return",
                        "src": "6337:12:0"
                      }
                    ]
                  },
                  "id": 316,
                  "nodeType": "IfStatement",
                  "src": "5883:477:0",
                  "trueBody": {
                    "id": 292,
                    "nodeType": "Block",
                    "src": "5912:203:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 275,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "5962:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 276,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "5975:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 277,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5975:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 278,
                              "name": "max_previous",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 238,
                              "src": "5987:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 272,
                              "name": "realitio",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "5926:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IRealitio_$1710",
                                "typeString": "contract IRealitio"
                              }
                            },
                            "id": 274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "notifyOfArbitrationRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1680,
                            "src": "5926:35:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256) external"
                            }
                          },
                          "id": 279,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5926:74:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 280,
                        "nodeType": "ExpressionStatement",
                        "src": "5926:74:0"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 282,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "6041:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 283,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6054:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 284,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6054:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 285,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6065:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 286,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6065:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6077:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 281,
                            "name": "LogRequestArbitration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "6019:21:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,uint256,address,uint256)"
                            }
                          },
                          "id": 288,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6019:60:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 289,
                        "nodeType": "EmitStatement",
                        "src": "6014:65:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6100:4:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 242,
                        "id": 291,
                        "nodeType": "Return",
                        "src": "6093:11:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Request arbitration, freezing the question until we send submitAnswerByArbitrator\n @dev The bounty can be paid only in part, in which case the last person to pay will be considered the payer\n Will trigger an error if the notification fails, eg because the question has already been finalized\n @param question_id The question in question\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 318,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "requestArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 236,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5512:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 235,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5512:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 238,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5533:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 237,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5533:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5511:43:0"
            },
            "payable": true,
            "returnParameters": {
              "id": 242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 241,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5586:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 240,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5586:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5585:6:0"
            },
            "scope": 390,
            "src": "5484:883:0",
            "stateMutability": "payable",
            "superFunction": 1239,
            "visibility": "external"
          },
          {
            "body": {
              "id": 334,
              "nodeType": "Block",
              "src": "6579:54:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 329,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9726,
                              "src": "6611:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Arbitrator_$390",
                                "typeString": "contract Arbitrator"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Arbitrator_$390",
                                "typeString": "contract Arbitrator"
                              }
                            ],
                            "id": 328,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6603:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6603:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6603:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 325,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 320,
                        "src": "6589:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "6589:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 332,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6589:36:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 333,
                  "nodeType": "ExpressionStatement",
                  "src": "6589:36:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated ETH fees to the specified address\n @param addr The address to which the balance should be sent",
            "id": 335,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 323,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 322,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "6557:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6557:9:0"
              }
            ],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 321,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 320,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 335,
                  "src": "6534:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 319,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6534:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6533:14:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 324,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6579:0:0"
            },
            "scope": 390,
            "src": "6516:117:0",
            "stateMutability": "nonpayable",
            "superFunction": 1244,
            "visibility": "public"
          },
          {
            "body": {
              "id": 361,
              "nodeType": "Block",
              "src": "7043:107:0",
              "statements": [
                {
                  "assignments": [
                    345
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 345,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 362,
                      "src": "7053:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 344,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7053:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 352,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 349,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9726,
                            "src": "7092:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$390",
                              "typeString": "contract Arbitrator"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Arbitrator_$390",
                              "typeString": "contract Arbitrator"
                            }
                          ],
                          "id": 348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7084:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 350,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7084:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 346,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 337,
                        "src": "7067:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        }
                      },
                      "id": 347,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1297,
                      "src": "7067:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7067:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7053:45:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 357,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 339,
                        "src": "7132:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 358,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 345,
                        "src": "7138:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 354,
                            "name": "_token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 337,
                            "src": "7115:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          ],
                          "id": 353,
                          "name": "IERC20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1352,
                          "src": "7108:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC20_$1352_$",
                            "typeString": "type(contract IERC20)"
                          }
                        },
                        "id": 355,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7108:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        }
                      },
                      "id": 356,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1315,
                      "src": "7108:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7108:34:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 360,
                  "nodeType": "ExpressionStatement",
                  "src": "7108:34:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated token fees to the specified address\n @param addr The address to which the balance should be sent\n @dev Only needed if the Realitio contract used is using an ERC20 token\n @dev Also only normally useful if a per-question fee is set, otherwise we only have ETH.",
            "id": 362,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 342,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 341,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7021:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7021:9:0"
              }
            ],
            "name": "withdrawERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 337,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 362,
                  "src": "6983:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1352",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 336,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1352,
                    "src": "6983:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 339,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 362,
                  "src": "6998:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6998:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6982:29:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7043:0:0"
            },
            "scope": 390,
            "src": "6960:190:0",
            "stateMutability": "nonpayable",
            "superFunction": 1251,
            "visibility": "public"
          },
          {
            "body": {
              "id": 365,
              "nodeType": "Block",
              "src": "7189:7:0",
              "statements": []
            },
            "documentation": null,
            "id": 366,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 363,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7164:2:0"
            },
            "payable": true,
            "returnParameters": {
              "id": 364,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7189:0:0"
            },
            "scope": 390,
            "src": "7156:40:0",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 376,
              "nodeType": "Block",
              "src": "7548:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 371,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "7558:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdraw",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1444,
                      "src": "7558:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7558:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 375,
                  "nodeType": "ExpressionStatement",
                  "src": "7558:19:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated question fees from the specified address into this contract\n @dev Funds can then be liberated from this contract with our withdraw() function\n @dev This works in the same way whether the realitio contract is using ETH or an ERC20 token",
            "id": 377,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 369,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 368,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7526:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7526:9:0"
              }
            ],
            "name": "callWithdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7514:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 370,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7548:0:0"
            },
            "scope": 390,
            "src": "7493:92:0",
            "stateMutability": "nonpayable",
            "superFunction": 1254,
            "visibility": "public"
          },
          {
            "body": {
              "id": 388,
              "nodeType": "Block",
              "src": "7768:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 384,
                      "name": "metadata",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "7778:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 385,
                      "name": "_metadata",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 379,
                      "src": "7789:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string calldata"
                      }
                    },
                    "src": "7778:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 387,
                  "nodeType": "ExpressionStatement",
                  "src": "7778:20:0"
                }
              ]
            },
            "documentation": "@notice Set a metadata string, expected to be JSON, containing things like arbitrator TOS address",
            "id": 389,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 382,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 381,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7745:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7745:9:0"
              }
            ],
            "name": "setMetaData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 379,
                  "name": "_metadata",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "7718:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 378,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7718:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7717:18:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 383,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7768:0:0"
            },
            "scope": 390,
            "src": "7697:108:0",
            "stateMutability": "nonpayable",
            "superFunction": 1259,
            "visibility": "external"
          }
        ],
        "scope": 391,
        "src": "126:7682:0"
      }
    ],
    "src": "0:7809:0"
  },
  "legacyAST": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Arbitrator.sol",
    "exportedSymbols": {
      "Arbitrator": [
        390
      ]
    },
    "id": 391,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Owned.sol",
        "file": "./Owned.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 2749,
        "src": "26:21:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IArbitrator.sol",
        "file": "./IArbitrator.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1271,
        "src": "48:27:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IRealitio.sol",
        "file": "./IRealitio.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1711,
        "src": "76:25:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/IERC20.sol",
        "file": "./IERC20.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1353,
        "src": "102:22:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2748,
              "src": "149:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$2748",
                "typeString": "contract Owned"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "149:5:0"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 8,
              "name": "IArbitrator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1270,
              "src": "156:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IArbitrator_$1270",
                "typeString": "contract IArbitrator"
              }
            },
            "id": 9,
            "nodeType": "InheritanceSpecifier",
            "src": "156:11:0"
          }
        ],
        "contractDependencies": [
          1365,
          1270,
          2748
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 390,
        "linearizedBaseContracts": [
          390,
          1270,
          2748,
          1365
        ],
        "name": "Arbitrator",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 11,
            "name": "realitio",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "175:25:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IRealitio_$1710",
              "typeString": "contract IRealitio"
            },
            "typeName": {
              "contractScope": null,
              "id": 10,
              "name": "IRealitio",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1710,
              "src": "175:9:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IRealitio_$1710",
                "typeString": "contract IRealitio"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 15,
            "name": "arbitration_bounties",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "207:55:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 14,
              "keyType": {
                "id": 12,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "215:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "207:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 13,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "226:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 17,
            "name": "dispute_fee",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "269:19:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 16,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "269:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 21,
            "name": "custom_dispute_fees",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "294:47:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 20,
              "keyType": {
                "id": 18,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "302:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "294:27:0",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 19,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "313:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 23,
            "name": "metadata",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "348:22:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 22,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "348:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 33,
            "name": "LogRequestArbitration",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 32,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "414:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "414:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27,
                  "indexed": false,
                  "name": "fee_paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "451:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "451:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 29,
                  "indexed": false,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "477:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 28,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "477:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31,
                  "indexed": false,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 33,
                  "src": "504:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 30,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "504:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "404:123:0"
            },
            "src": "377:151:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 37,
            "name": "LogSetRealitio",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 36,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 35,
                  "indexed": false,
                  "name": "realitio",
                  "nodeType": "VariableDeclaration",
                  "scope": 37,
                  "src": "564:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 34,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "564:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "554:32:0"
            },
            "src": "534:53:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 41,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 41,
                  "src": "626:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "626:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "616:27:0"
            },
            "src": "593:51:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 45,
            "name": "LogSetDisputeFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 45,
                  "src": "683:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "683:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "673:27:0"
            },
            "src": "651:50:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 51,
            "name": "LogSetCustomDisputeFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 50,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 47,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 51,
                  "src": "745:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 46,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "745:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 49,
                  "indexed": false,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 51,
                  "src": "782:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 48,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "782:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "735:64:0"
            },
            "src": "707:93:0"
          },
          {
            "body": {
              "id": 59,
              "nodeType": "Block",
              "src": "898:35:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 57,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 54,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2715,
                      "src": "908:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 55,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "916:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 56,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "916:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "908:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 58,
                  "nodeType": "ExpressionStatement",
                  "src": "908:18:0"
                }
              ]
            },
            "documentation": "@notice Constructor. Sets the deploying address as owner.",
            "id": 60,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 52,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "883:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 53,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "898:0:0"
            },
            "scope": 390,
            "src": "872:61:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 67,
              "nodeType": "Block",
              "src": "1092:32:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 65,
                    "name": "realitio",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11,
                    "src": "1109:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "functionReturnParameters": 64,
                  "id": 66,
                  "nodeType": "Return",
                  "src": "1102:15:0"
                }
              ]
            },
            "documentation": "@notice Returns the Realitio contract address - deprecated in favour of realitio()",
            "id": 68,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "realitycheck",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 61,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1051:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 64,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 63,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 68,
                  "src": "1081:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IRealitio_$1710",
                    "typeString": "contract IRealitio"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 62,
                    "name": "IRealitio",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1710,
                    "src": "1081:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1080:11:0"
            },
            "scope": 390,
            "src": "1030:94:0",
            "stateMutability": "view",
            "superFunction": 1192,
            "visibility": "external"
          },
          {
            "body": {
              "id": 85,
              "nodeType": "Block",
              "src": "1313:78:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 79,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 75,
                      "name": "realitio",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11,
                      "src": "1323:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRealitio_$1710",
                        "typeString": "contract IRealitio"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 77,
                          "name": "addr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 70,
                          "src": "1344:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 76,
                        "name": "IRealitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1710,
                        "src": "1334:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IRealitio_$1710_$",
                          "typeString": "type(contract IRealitio)"
                        }
                      },
                      "id": 78,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1334:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRealitio_$1710",
                        "typeString": "contract IRealitio"
                      }
                    },
                    "src": "1323:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                      "typeString": "contract IRealitio"
                    }
                  },
                  "id": 80,
                  "nodeType": "ExpressionStatement",
                  "src": "1323:26:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 82,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 70,
                        "src": "1379:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 81,
                      "name": "LogSetRealitio",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 37,
                      "src": "1364:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 83,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1364:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 84,
                  "nodeType": "EmitStatement",
                  "src": "1359:25:0"
                }
              ]
            },
            "documentation": "@notice Set the Reality Check contract address\n @param addr The address of the Reality Check contract",
            "id": 86,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 73,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 72,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1291:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1291:9:0"
              }
            ],
            "name": "setRealitio",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 71,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 70,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "1268:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 69,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1268:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1267:14:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1313:0:0"
            },
            "scope": 390,
            "src": "1247:144:0",
            "stateMutability": "nonpayable",
            "superFunction": 1197,
            "visibility": "public"
          },
          {
            "body": {
              "id": 101,
              "nodeType": "Block",
              "src": "1542:70:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 95,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 93,
                      "name": "dispute_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17,
                      "src": "1552:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 94,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1566:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1552:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 96,
                  "nodeType": "ExpressionStatement",
                  "src": "1552:17:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 98,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 88,
                        "src": "1601:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 97,
                      "name": "LogSetDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45,
                      "src": "1584:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1584:21:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 100,
                  "nodeType": "EmitStatement",
                  "src": "1579:26:0"
                }
              ]
            },
            "documentation": "@notice Set the default fee\n @param fee The default fee amount",
            "id": 102,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 91,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 90,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1520:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1520:9:0"
              }
            ],
            "name": "setDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 102,
                  "src": "1498:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1498:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1497:13:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 92,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1542:0:0"
            },
            "scope": 390,
            "src": "1475:137:0",
            "stateMutability": "nonpayable",
            "superFunction": 1202,
            "visibility": "public"
          },
          {
            "body": {
              "id": 122,
              "nodeType": "Block",
              "src": "1860:110:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 115,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 111,
                        "name": "custom_dispute_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "1870:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 113,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 112,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 104,
                        "src": "1890:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1870:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 114,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 106,
                      "src": "1905:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1870:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 116,
                  "nodeType": "ExpressionStatement",
                  "src": "1870:38:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 118,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 104,
                        "src": "1946:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 119,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1959:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 117,
                      "name": "LogSetCustomDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 51,
                      "src": "1923:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1923:40:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 121,
                  "nodeType": "EmitStatement",
                  "src": "1918:45:0"
                }
              ]
            },
            "documentation": "@notice Set a custom fee for this particular question\n @param question_id The question in question\n @param fee The fee amount",
            "id": 123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 109,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 108,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "1838:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1838:9:0"
              }
            ],
            "name": "setCustomDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 104,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "1795:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 103,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1795:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 106,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "1816:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1794:34:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1860:0:0"
            },
            "scope": 390,
            "src": "1766:204:0",
            "stateMutability": "nonpayable",
            "superFunction": 1209,
            "visibility": "public"
          },
          {
            "body": {
              "id": 142,
              "nodeType": "Block",
              "src": "2307:111:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 130,
                              "name": "custom_dispute_fees",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 21,
                              "src": "2325:19:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 132,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 131,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 125,
                              "src": "2345:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2325:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2360:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "2325:36:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 135,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2324:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 139,
                      "name": "dispute_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17,
                      "src": "2400:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2324:87:0",
                    "trueExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 136,
                        "name": "custom_dispute_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21,
                        "src": "2365:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 138,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 137,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 125,
                        "src": "2385:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2365:32:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 129,
                  "id": 141,
                  "nodeType": "Return",
                  "src": "2317:94:0"
                }
              ]
            },
            "documentation": "@notice Return the dispute fee for the specified question. 0 indicates that we won't arbitrate it.\n @param question_id The question in question\n @dev Uses a general default, but can be over-ridden on a question-by-question basis.",
            "id": 143,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDisputeFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 125,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 143,
                  "src": "2251:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2251:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2250:21:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 128,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 143,
                  "src": "2298:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 127,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2298:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2297:9:0"
            },
            "scope": 390,
            "src": "2228:190:0",
            "stateMutability": "view",
            "superFunction": 1216,
            "visibility": "public"
          },
          {
            "body": {
              "id": 160,
              "nodeType": "Block",
              "src": "2961:82:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 153,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 145,
                        "src": "2995:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 150,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "2971:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setQuestionFee",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1460,
                      "src": "2971:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2971:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 155,
                  "nodeType": "ExpressionStatement",
                  "src": "2971:28:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 157,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 145,
                        "src": "3032:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 156,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41,
                      "src": "3014:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3014:22:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 159,
                  "nodeType": "EmitStatement",
                  "src": "3009:27:0"
                }
              ]
            },
            "documentation": "@notice Set a fee for asking a question with us as the arbitrator\n @param fee The fee amount\n @dev Default is no fee. Unlike the dispute fee, 0 is an acceptable setting.\n You could set an impossibly high fee if you want to prevent us being used as arbitrator unless we submit the question.\n (Submitting the question ourselves is not implemented here.)\n This fee can be used as a revenue source, an anti-spam measure, or both.",
            "id": 161,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 148,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 147,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "2939:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2939:9:0"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 145,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 161,
                  "src": "2917:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2917:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2916:13:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 149,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2961:0:0"
            },
            "scope": 390,
            "src": "2893:150:0",
            "stateMutability": "nonpayable",
            "superFunction": 1221,
            "visibility": "public"
          },
          {
            "body": {
              "id": 185,
              "nodeType": "Block",
              "src": "3439:131:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "3449:40:0",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 172,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "3456:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 174,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 173,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "3477:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3456:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 176,
                  "nodeType": "ExpressionStatement",
                  "src": "3449:40:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 180,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "3533:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 181,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 165,
                        "src": "3546:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 182,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 167,
                        "src": "3554:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 177,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "3499:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "submitAnswerByArbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "3499:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3499:64:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 184,
                  "nodeType": "ExpressionStatement",
                  "src": "3499:64:0"
                }
              ]
            },
            "documentation": "@notice Submit the arbitrator's answer to a question.\n @param question_id The question in question\n @param answer The answer\n @param answerer The answerer. If arbitration changed the answer, it should be the payer. If not, the old answerer.",
            "id": 186,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 170,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 169,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "3417:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3417:9:0"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 163,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3353:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3353:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 165,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3374:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 164,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3374:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 167,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 186,
                  "src": "3390:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3390:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3352:55:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 171,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3439:0:0"
            },
            "scope": 390,
            "src": "3319:251:0",
            "stateMutability": "nonpayable",
            "superFunction": 1230,
            "visibility": "public"
          },
          {
            "body": {
              "id": 219,
              "nodeType": "Block",
              "src": "4389:216:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "4399:40:0",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 203,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "4406:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 205,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 204,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 188,
                        "src": "4427:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4406:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 207,
                  "nodeType": "ExpressionStatement",
                  "src": "4399:40:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 211,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 188,
                        "src": "4498:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 212,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 190,
                        "src": "4511:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 213,
                        "name": "payee_if_wrong",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "4519:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 214,
                        "name": "last_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 194,
                        "src": "4535:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 215,
                        "name": "last_answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 196,
                        "src": "4554:28:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 216,
                        "name": "last_answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 198,
                        "src": "4584:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 208,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "4449:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "assignWinnerAndSubmitAnswerByArbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1704,
                      "src": "4449:48:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,bytes32,bytes32,address) external"
                      }
                    },
                    "id": 217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4449:149:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 218,
                  "nodeType": "ExpressionStatement",
                  "src": "4449:149:0"
                }
              ]
            },
            "documentation": "@notice Submit the arbitrator's answer to a question, assigning the winner automatically.\n @param question_id The question in question\n @param answer The answer\n @param payee_if_wrong The account to by credited as winner if the last answer given is wrong, usually the account that paid the arbitrator\n @param last_history_hash The history hash before the final one\n @param last_answer_or_commitment_id The last answer given, or the commitment ID if it was a commitment.\n @param last_answerer The address that supplied the last answer",
            "id": 220,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 201,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 200,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "4367:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4367:9:0"
              }
            ],
            "name": "assignWinnerAndSubmitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 188,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4209:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 187,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4209:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4230:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4230:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 192,
                  "name": "payee_if_wrong",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4246:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4246:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 194,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4270:25:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4270:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 196,
                  "name": "last_answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4297:36:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4297:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 198,
                  "name": "last_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "4335:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4335:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4208:149:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 202,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4389:0:0"
            },
            "scope": 390,
            "src": "4160:445:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 233,
              "nodeType": "Block",
              "src": "4924:56:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 230,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 222,
                        "src": "4961:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 227,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "4934:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 229,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "cancelArbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1709,
                      "src": "4934:26:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32) external"
                      }
                    },
                    "id": 231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4934:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 232,
                  "nodeType": "ExpressionStatement",
                  "src": "4934:39:0"
                }
              ]
            },
            "documentation": "@notice Cancel a previous arbitration request\n @dev This is intended for situations where the arbitration is happening non-atomically and the fee or something change.\n @param question_id The question in question",
            "id": 234,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 225,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 224,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "4902:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4902:9:0"
              }
            ],
            "name": "cancelArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 234,
                  "src": "4872:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4872:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4871:21:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 226,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4924:0:0"
            },
            "scope": 390,
            "src": "4845:135:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 317,
              "nodeType": "Block",
              "src": "5592:775:0",
              "statements": [
                {
                  "assignments": [
                    244
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 244,
                      "name": "arbitration_fee",
                      "nodeType": "VariableDeclaration",
                      "scope": 318,
                      "src": "5603:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 243,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5603:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 248,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 246,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "5643:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 245,
                      "name": "getDisputeFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 143,
                      "src": "5629:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view returns (uint256)"
                      }
                    },
                    "id": 247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5629:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5603:52:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 252,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 250,
                          "name": "arbitration_fee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 244,
                          "src": "5673:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5691:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5673:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652061726269747261746f72206d7573742068617665207365742061206e6f6e2d7a65726f2066656520666f7220746865207175657374696f6e",
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5694:62:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_72b298b87bad4c7d978585a27e4ac31ece329de5cea2dd93ff61a115129b1c48",
                          "typeString": "literal_string \"The arbitrator must have set a non-zero fee for the question\""
                        },
                        "value": "The arbitrator must have set a non-zero fee for the question"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_72b298b87bad4c7d978585a27e4ac31ece329de5cea2dd93ff61a115129b1c48",
                          "typeString": "literal_string \"The arbitrator must have set a non-zero fee for the question\""
                        }
                      ],
                      "id": 249,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5665:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 254,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5665:92:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 255,
                  "nodeType": "ExpressionStatement",
                  "src": "5665:92:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 256,
                        "name": "arbitration_bounties",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15,
                        "src": "5768:20:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 258,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "5789:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5768:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 259,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "5805:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5805:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5768:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 262,
                  "nodeType": "ExpressionStatement",
                  "src": "5768:46:0"
                },
                {
                  "assignments": [
                    264
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 264,
                      "name": "paid",
                      "nodeType": "VariableDeclaration",
                      "scope": 318,
                      "src": "5824:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 263,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5824:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 268,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 265,
                      "name": "arbitration_bounties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15,
                      "src": "5839:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 267,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 266,
                      "name": "question_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "5860:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5839:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5824:48:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 269,
                      "name": "paid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 264,
                      "src": "5887:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 270,
                      "name": "arbitration_fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "5895:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5887:23:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 315,
                    "nodeType": "Block",
                    "src": "6121:239:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 298,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "6143:34:0",
                              "subExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 296,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 236,
                                    "src": "6165:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 294,
                                    "name": "realitio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 11,
                                    "src": "6144:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IRealitio_$1710",
                                      "typeString": "contract IRealitio"
                                    }
                                  },
                                  "id": 295,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "isFinalized",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1537,
                                  "src": "6144:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                                    "typeString": "function (bytes32) view external returns (bool)"
                                  }
                                },
                                "id": 297,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6144:33:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546865207175657374696f6e206d757374206e6f742068617665206265656e2066696e616c697a6564",
                              "id": 299,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6179:43:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e967b5d9fecc255e50879b27d4801cdeebbadcb0d4ff678250ec0b680707bc3f",
                                "typeString": "literal_string \"The question must not have been finalized\""
                              },
                              "value": "The question must not have been finalized"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_e967b5d9fecc255e50879b27d4801cdeebbadcb0d4ff678250ec0b680707bc3f",
                                "typeString": "literal_string \"The question must not have been finalized\""
                              }
                            ],
                            "id": 293,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "6135:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6135:88:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 301,
                        "nodeType": "ExpressionStatement",
                        "src": "6135:88:0"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 303,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "6264:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 304,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6277:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 305,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6277:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 306,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6288:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 307,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6288:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 310,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 308,
                                "name": "arbitration_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 244,
                                "src": "6300:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 309,
                                "name": "paid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 264,
                                "src": "6318:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "6300:22:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 302,
                            "name": "LogRequestArbitration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "6242:21:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,uint256,address,uint256)"
                            }
                          },
                          "id": 311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6242:81:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 312,
                        "nodeType": "EmitStatement",
                        "src": "6237:86:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6344:5:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 242,
                        "id": 314,
                        "nodeType": "Return",
                        "src": "6337:12:0"
                      }
                    ]
                  },
                  "id": 316,
                  "nodeType": "IfStatement",
                  "src": "5883:477:0",
                  "trueBody": {
                    "id": 292,
                    "nodeType": "Block",
                    "src": "5912:203:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 275,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "5962:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 276,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "5975:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 277,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5975:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 278,
                              "name": "max_previous",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 238,
                              "src": "5987:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 272,
                              "name": "realitio",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11,
                              "src": "5926:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IRealitio_$1710",
                                "typeString": "contract IRealitio"
                              }
                            },
                            "id": 274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "notifyOfArbitrationRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1680,
                            "src": "5926:35:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256) external"
                            }
                          },
                          "id": 279,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5926:74:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 280,
                        "nodeType": "ExpressionStatement",
                        "src": "5926:74:0"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 282,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "6041:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 283,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6054:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 284,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6054:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 285,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9703,
                                "src": "6065:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 286,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6065:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6077:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 281,
                            "name": "LogRequestArbitration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 33,
                            "src": "6019:21:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,uint256,address,uint256)"
                            }
                          },
                          "id": 288,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6019:60:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 289,
                        "nodeType": "EmitStatement",
                        "src": "6014:65:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6100:4:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 242,
                        "id": 291,
                        "nodeType": "Return",
                        "src": "6093:11:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Request arbitration, freezing the question until we send submitAnswerByArbitrator\n @dev The bounty can be paid only in part, in which case the last person to pay will be considered the payer\n Will trigger an error if the notification fails, eg because the question has already been finalized\n @param question_id The question in question\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 318,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "requestArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 236,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5512:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 235,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5512:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 238,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5533:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 237,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5533:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5511:43:0"
            },
            "payable": true,
            "returnParameters": {
              "id": 242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 241,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 318,
                  "src": "5586:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 240,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5586:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5585:6:0"
            },
            "scope": 390,
            "src": "5484:883:0",
            "stateMutability": "payable",
            "superFunction": 1239,
            "visibility": "external"
          },
          {
            "body": {
              "id": 334,
              "nodeType": "Block",
              "src": "6579:54:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 329,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9726,
                              "src": "6611:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Arbitrator_$390",
                                "typeString": "contract Arbitrator"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Arbitrator_$390",
                                "typeString": "contract Arbitrator"
                              }
                            ],
                            "id": 328,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6603:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6603:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6603:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 325,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 320,
                        "src": "6589:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "6589:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 332,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6589:36:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 333,
                  "nodeType": "ExpressionStatement",
                  "src": "6589:36:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated ETH fees to the specified address\n @param addr The address to which the balance should be sent",
            "id": 335,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 323,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 322,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "6557:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6557:9:0"
              }
            ],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 321,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 320,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 335,
                  "src": "6534:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 319,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6534:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6533:14:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 324,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6579:0:0"
            },
            "scope": 390,
            "src": "6516:117:0",
            "stateMutability": "nonpayable",
            "superFunction": 1244,
            "visibility": "public"
          },
          {
            "body": {
              "id": 361,
              "nodeType": "Block",
              "src": "7043:107:0",
              "statements": [
                {
                  "assignments": [
                    345
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 345,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 362,
                      "src": "7053:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 344,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7053:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 352,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 349,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9726,
                            "src": "7092:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$390",
                              "typeString": "contract Arbitrator"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Arbitrator_$390",
                              "typeString": "contract Arbitrator"
                            }
                          ],
                          "id": 348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7084:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 350,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7084:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 346,
                        "name": "_token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 337,
                        "src": "7067:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        }
                      },
                      "id": 347,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1297,
                      "src": "7067:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7067:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7053:45:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 357,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 339,
                        "src": "7132:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 358,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 345,
                        "src": "7138:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 354,
                            "name": "_token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 337,
                            "src": "7115:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          ],
                          "id": 353,
                          "name": "IERC20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1352,
                          "src": "7108:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC20_$1352_$",
                            "typeString": "type(contract IERC20)"
                          }
                        },
                        "id": 355,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7108:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        }
                      },
                      "id": 356,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1315,
                      "src": "7108:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7108:34:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 360,
                  "nodeType": "ExpressionStatement",
                  "src": "7108:34:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated token fees to the specified address\n @param addr The address to which the balance should be sent\n @dev Only needed if the Realitio contract used is using an ERC20 token\n @dev Also only normally useful if a per-question fee is set, otherwise we only have ETH.",
            "id": 362,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 342,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 341,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7021:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7021:9:0"
              }
            ],
            "name": "withdrawERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 337,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 362,
                  "src": "6983:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1352",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 336,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1352,
                    "src": "6983:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 339,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 362,
                  "src": "6998:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6998:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6982:29:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7043:0:0"
            },
            "scope": 390,
            "src": "6960:190:0",
            "stateMutability": "nonpayable",
            "superFunction": 1251,
            "visibility": "public"
          },
          {
            "body": {
              "id": 365,
              "nodeType": "Block",
              "src": "7189:7:0",
              "statements": []
            },
            "documentation": null,
            "id": 366,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 363,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7164:2:0"
            },
            "payable": true,
            "returnParameters": {
              "id": 364,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7189:0:0"
            },
            "scope": 390,
            "src": "7156:40:0",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 376,
              "nodeType": "Block",
              "src": "7548:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 371,
                        "name": "realitio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11,
                        "src": "7558:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRealitio_$1710",
                          "typeString": "contract IRealitio"
                        }
                      },
                      "id": 373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdraw",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1444,
                      "src": "7558:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7558:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 375,
                  "nodeType": "ExpressionStatement",
                  "src": "7558:19:0"
                }
              ]
            },
            "documentation": "@notice Withdraw any accumulated question fees from the specified address into this contract\n @dev Funds can then be liberated from this contract with our withdraw() function\n @dev This works in the same way whether the realitio contract is using ETH or an ERC20 token",
            "id": 377,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 369,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 368,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7526:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7526:9:0"
              }
            ],
            "name": "callWithdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7514:2:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 370,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7548:0:0"
            },
            "scope": 390,
            "src": "7493:92:0",
            "stateMutability": "nonpayable",
            "superFunction": 1254,
            "visibility": "public"
          },
          {
            "body": {
              "id": 388,
              "nodeType": "Block",
              "src": "7768:37:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 384,
                      "name": "metadata",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23,
                      "src": "7778:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 385,
                      "name": "_metadata",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 379,
                      "src": "7789:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string calldata"
                      }
                    },
                    "src": "7778:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 387,
                  "nodeType": "ExpressionStatement",
                  "src": "7778:20:0"
                }
              ]
            },
            "documentation": "@notice Set a metadata string, expected to be JSON, containing things like arbitrator TOS address",
            "id": 389,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 382,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 381,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2735,
                  "src": "7745:9:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7745:9:0"
              }
            ],
            "name": "setMetaData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 379,
                  "name": "_metadata",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "7718:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 378,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7718:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7717:18:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 383,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7768:0:0"
            },
            "scope": 390,
            "src": "7697:108:0",
            "stateMutability": "nonpayable",
            "superFunction": 1259,
            "visibility": "external"
          }
        ],
        "scope": 391,
        "src": "126:7682:0"
      }
    ],
    "src": "0:7809:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang",
    "optimizer": false,
    "runs": 200
  },
  "networks": {},
  "schemaVersion": "2.3.3",
  "updatedAt": "2021-01-13T02:23:04.513Z"
}