{
  "contractName": "RealitioERC20",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "template_hashes",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "question_claims",
      "outputs": [
        {
          "name": "payee",
          "type": "address"
        },
        {
          "name": "last_bond",
          "type": "uint256"
        },
        {
          "name": "queued_funds",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "arbitrator_question_fees",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "commitments",
      "outputs": [
        {
          "name": "reveal_ts",
          "type": "uint32"
        },
        {
          "name": "is_revealed",
          "type": "bool"
        },
        {
          "name": "revealed_answer",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "questions",
      "outputs": [
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "finalize_ts",
          "type": "uint32"
        },
        {
          "name": "is_pending_arbitration",
          "type": "bool"
        },
        {
          "name": "bounty",
          "type": "uint256"
        },
        {
          "name": "best_answer",
          "type": "bytes32"
        },
        {
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "templates",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogSetQuestionFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "question_text",
          "type": "string"
        }
      ],
      "name": "LogNewTemplate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "template_id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "question",
          "type": "string"
        },
        {
          "indexed": true,
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "arbitrator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "timeout",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "created",
          "type": "uint256"
        }
      ],
      "name": "LogNewQuestion",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "bounty_added",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bounty",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogFundAnswerBounty",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "history_hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "ts",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "is_commitment",
          "type": "bool"
        }
      ],
      "name": "LogNewAnswer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "answer",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "nonce",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "LogAnswerReveal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "LogNotifyOfArbitrationRequest",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "answer",
          "type": "bytes32"
        }
      ],
      "name": "LogFinalize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogClaim",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogWithdraw",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "setToken",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fee",
          "type": "uint256"
        }
      ],
      "name": "setQuestionFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        }
      ],
      "name": "createTemplate",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "content",
          "type": "string"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "createTemplateAndAskQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "template_id",
          "type": "uint256"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "askQuestion",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "template_id",
          "type": "uint256"
        },
        {
          "name": "question",
          "type": "string"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "timeout",
          "type": "uint32"
        },
        {
          "name": "opening_ts",
          "type": "uint32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "askQuestionERC20",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "fundAnswerBountyERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer_hash",
          "type": "bytes32"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        },
        {
          "name": "_answerer",
          "type": "address"
        },
        {
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerCommitmentERC20",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "answer",
          "type": "bytes32"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "bond",
          "type": "uint256"
        }
      ],
      "name": "submitAnswerReveal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "requester",
          "type": "address"
        },
        {
          "name": "max_previous",
          "type": "uint256"
        }
      ],
      "name": "notifyOfArbitrationRequest",
      "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": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isFinalized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "resultFor",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "content_hash",
          "type": "bytes32"
        },
        {
          "name": "arbitrator",
          "type": "address"
        },
        {
          "name": "min_timeout",
          "type": "uint32"
        },
        {
          "name": "min_bond",
          "type": "uint256"
        }
      ],
      "name": "getFinalAnswerIfMatches",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        },
        {
          "name": "history_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimWinnings",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "question_ids",
          "type": "bytes32[]"
        },
        {
          "name": "lengths",
          "type": "uint256[]"
        },
        {
          "name": "hist_hashes",
          "type": "bytes32[]"
        },
        {
          "name": "addrs",
          "type": "address[]"
        },
        {
          "name": "bonds",
          "type": "uint256[]"
        },
        {
          "name": "answers",
          "type": "bytes32[]"
        }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getContentHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getArbitrator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getOpeningTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getTimeout",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getFinalizeTS",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "isPendingArbitration",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBounty",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBestAnswer",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getHistoryHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "question_id",
          "type": "bytes32"
        }
      ],
      "name": "getBond",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006002553480156200001657600080fd5b506200008d606060405190810160405280603f81526020017f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2081526020017f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0081525062000308640100000000026401000000009004565b506200012a608060405190810160405280604f81526020017f7b227469746c65223a20222573222c202274797065223a202275696e74222c2081526020017f22646563696d616c73223a2031382c202263617465676f7279223a202225732281526020017f2c20226c616e67223a20222573227d000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620001c7608060405190810160405280605a81526020017f7b227469746c65223a20222573222c202274797065223a202273696e676c652d81526020017f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746581526020017f676f7279223a20222573222c20226c616e67223a20222573227d00000000000081525062000308640100000000026401000000009004565b5062000264608060405190810160405280605c81526020017f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c81526020017f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636181526020017f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000081525062000308640100000000026401000000009004565b5062000301608060405190810160405280604381526020017f7b227469746c65223a20222573222c202274797065223a20226461746574696d81526020017f65222c202263617465676f7279223a20222573222c20226c616e67223a20222581526020017f73227d000000000000000000000000000000000000000000000000000000000081525062000308640100000000026401000000009004565b506200051f565b6000806002549050436003600083815260200190815260200160002081905550826040516020018082805190602001908083835b6020831015156200036357805182526020820191506020810190506020830392506200033c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083101515620003ce5780518252602082019150602081019050602083039250620003a7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206004600083815260200190815260200160002081600019169055503373ffffffffffffffffffffffffffffffffffffffff16817fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4856040518080602001828103825283818151815260200191508051906020019080838360005b838110156200049257808201518184015260208101905062000475565b50505050905090810190601f168015620004c05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3620004f1600182620005006401000000000262005354179091906401000000009004565b60028190555080915050919050565b60008082840190508381101515156200051557fe5b8091505092915050565b6163a3806200052f6000396000f3006080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631101a0fd146101d2578063128b7a471461030f57806312a203c31461034a578063144fa6d7146103df5780632417395c146104225780632518904c1461046757806326d6c97b146104d857806328828b1e1461051d5780632f998a6f146106d25780633ccfd60b146107255780634dc266b41461073c5780634df6ca2a1461078f5780634e60f883146107bc57806351577ea914610805578063590158a7146108525780636fa42742146108d157806370a0823114610928578063762c38fd1461097f5780637f8d429e14610a5857806382ffa9f714610aa1578063839df94514610aee57806383bf460914610b595780638d552d4614610bd6578063924532fb14610c2357806395addb9014610c6c5780639e63fa6a14610d5c5780639f1025c614610dad578063a1130d0414610dfe578063a462fb7b14610f13578063ac7b2a5f14610f60578063acae8f4e14610fd3578063bc52565214611024578063d09cc57e14611065578063d4876b9f146110b2578063f6a94ecb14611195578063fc0c546a146111f0578063fe92049d14611247575b600080fd5b3480156101de57600080fd5b5061030d6004803603810190808035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506112a6565b005b34801561031b57600080fd5b5061034860048036038101908080356000191690602001909291908035906020019092919050505061176b565b005b34801561035657600080fd5b506103c160048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050611b75565b60405180826000191660001916815260200191505060405180910390f35b3480156103eb57600080fd5b50610420600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee6565b005b34801561042e57600080fd5b506104516004803603810190808035600019169060200190929190505050612014565b6040518082815260200191505060405180910390f35b34801561047357600080fd5b50610496600480360381019080803560001916906020019092919050505061203c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e457600080fd5b506105076004803603810190808035600019169060200190929190505050612084565b6040518082815260200191505060405180910390f35b34801561052957600080fd5b506106d06004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506120ac565b005b3480156106de57600080fd5b5061072360048036038101908080356000191690602001909291908035600019169060200190929190803590602001909291908035906020019092919050505061232a565b005b34801561073157600080fd5b5061073a6128a0565b005b34801561074857600080fd5b5061078d600480360381019080803560001916906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050612a84565b005b34801561079b57600080fd5b506107ba600480360381019080803590602001909291905050506130fd565b005b3480156107c857600080fd5b506107e7600480360381019080803590602001909291905050506131af565b60405180826000191660001916815260200191505060405180910390f35b34801561081157600080fd5b5061083460048036038101908080356000191690602001909291905050506131c7565b60405180826000191660001916815260200191505060405180910390f35b34801561085e57600080fd5b5061088160048036038101908080356000191690602001909291905050506131ef565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b3480156108dd57600080fd5b50610912600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613239565b6040518082815260200191505060405180910390f35b34801561093457600080fd5b50610969600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613251565b6040518082815260200191505060405180910390f35b34801561098b57600080fd5b50610a3a60048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050613269565b60405180826000191660001916815260200191505060405180910390f35b348015610a6457600080fd5b50610a8760048036038101908080356000191690602001909291905050506136a0565b604051808215151515815260200191505060405180910390f35b348015610aad57600080fd5b50610ad06004803603810190808035600019169060200190929190505050613739565b60405180826000191660001916815260200191505060405180910390f35b348015610afa57600080fd5b50610b1d6004803603810190808035600019169060200190929190505050613761565b604051808463ffffffff1663ffffffff168152602001831515151581526020018260001916600019168152602001935050505060405180910390f35b348015610b6557600080fd5b50610bc0600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506137a8565b6040518082815260200191505060405180910390f35b348015610be257600080fd5b50610c056004803603810190808035600019169060200190929190505050613989565b60405180826000191660001916815260200191505060405180910390f35b348015610c2f57600080fd5b50610c5260048036038101908080356000191690602001909291905050506139b1565b604051808215151515815260200191505060405180910390f35b348015610c7857600080fd5b50610c9b60048036038101908080356000191690602001909291905050506139e6565b604051808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018963ffffffff1663ffffffff1681526020018863ffffffff1663ffffffff1681526020018763ffffffff1663ffffffff16815260200186151515158152602001858152602001846000191660001916815260200183600019166000191681526020018281526020019a505050505050505050505060405180910390f35b348015610d6857600080fd5b50610d8b6004803603810190808035600019169060200190929190505050613a97565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610db957600080fd5b50610ddc6004803603810190808035600019169060200190929190505050613acf565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610e0a57600080fd5b50610ef5600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050613b07565b60405180826000191660001916815260200191505060405180910390f35b348015610f1f57600080fd5b50610f426004803603810190808035600019169060200190929190505050613b30565b60405180826000191660001916815260200191505060405180910390f35b348015610f6c57600080fd5b50610fd16004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bd7565b005b348015610fdf57600080fd5b506110026004803603810190808035600019169060200190929190505050614206565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561103057600080fd5b5061104f6004803603810190808035906020019092919050505061423e565b6040518082815260200191505060405180910390f35b34801561107157600080fd5b506110946004803603810190808035600019169060200190929190505050614256565b60405180826000191660001916815260200191505060405180910390f35b3480156110be57600080fd5b5061117760048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506142fd565b60405180826000191660001916815260200191505060405180910390f35b3480156111a157600080fd5b506111ee6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061473e565b005b3480156111fc57600080fd5b50611205614d5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561125357600080fd5b506112a460048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614d81565b005b60008060008060008060008b6112bb816136a0565b151561132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60008c511115156113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f6174206c65617374206f6e6520686973746f7279206861736820656e7472792081526020017f6d7573742062652070726f76696465640000000000000000000000000000000081525060400191505060405180910390fd5b600660008e6000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169750600660008e60001916600019168152602001908152602001600020600101549650600660008e60001916600019168152602001908152602001600020600201549550600560008e60001916600019168152602001908152602001600020600501549450600560008e60001916600019168152602001908152602001600020600401549350600092505b8b518310156115bf5761150a858d858151811015156114b357fe5b906020019060200201518b868151811015156114cb57fe5b906020019060200201518d878151811015156114e357fe5b906020019060200201518f888151811015156114fb57fe5b9060200190602002015161505d565b915061151f878761535490919063ffffffff16565b95506115768d85888b8f8881518110151561153657fe5b906020019060200201518f8981518110151561154e57fe5b906020019060200201518f8a81518110151561156657fe5b9060200190602002015189615372565b8099508197505050898381518110151561158c57fe5b9060200190602002015196508b838151811015156115a657fe5b9060200190602002015194508280600101935050611498565b60006001026000191685600019161415156116c257600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151561161a576116158d89886155a9565b600095505b87600660008f6000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600660008f600019166000191681526020019081526020016000206001018190555085600660008f6000191660001916815260200190815260200160002060020181905550611735565b6116df8d896116da8a8a61535490919063ffffffff16565b6155a9565b600660008e60001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550505b84600560008f60001916600019168152602001908152602001600020600501816000191690555050505050505050505050505050565b81600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff1611151561181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161515156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff16148061193957504263ffffffff168263ffffffff16115b15156119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480611a2557504263ffffffff168163ffffffff1611155b1515611a99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b611aa284615696565b611ad3846005600088600019166000191681526020019081526020016000206003015461535490919063ffffffff16565b600560008760001916600019168152602001908152602001600020600301819055503373ffffffffffffffffffffffffffffffffffffffff1685600019167f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6686600560008a6000191660001916815260200190815260200160002060030154604051808381526020018281526020019250505060405180910390a35050505050565b600085611b81816136a0565b1515611bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060000154600019168660001916141515611c92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f636f6e74656e742068617368206d757374206d6174636800000000000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611d73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f61726269747261746f72206d757374206d61746368000000000000000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff168463ffffffff1611151515611e25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74696d656f7574206d757374206265206c6f6e6720656e6f756768000000000081525060200191505060405180910390fd5b600560008860001916600019168152602001908152602001600020600601548311151515611ebb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f626f6e64206d757374206265206869676820656e6f756768000000000000000081525060200191505060405180910390fd5b6005600088600019166000191681526020019081526020016000206004015491505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e81526020017f636500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008360001916600019168152602001908152602001600020600301549050919050565b600060056000836000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008360001916600019168152602001908152602001600020600601549050919050565b60008060008060608060608060008098505b8e51891015612311578e898151811015156120d557fe5b9060200190602002015196508d898151811015156120ef57fe5b9060200190602002015195508560405190808252806020026020018201604052801561212a5781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561215c5781602001602082028038833980820191505090505b5093508560405190808252806020026020018201604052801561218e5781602001602082028038833980820191505090505b509250856040519080825280602002602001820160405280156121c05781602001602082028038833980820191505090505b509150600090505b858110156122f7578c888151811015156121de57fe5b9060200190602002015185828151811015156121f657fe5b9060200190602002019060001916908160001916815250508b8881518110151561221c57fe5b90602001906020020151848281518110151561223457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508a8881518110151561227e57fe5b90602001906020020151838281518110151561229657fe5b906020019060200201818152505089888151811015156122b257fe5b9060200190602002015182828151811015156122ca57fe5b906020019060200201906000191690816000191681525050878060010198505080806001019150506121c8565b61230487868686866112a6565b88806001019950506120be565b6123196128a0565b505050505050505050505050505050565b83600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff161115156123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161515156124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff1614806124f857504263ffffffff168263ffffffff16115b1515612592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff1614806125e457504263ffffffff168163ffffffff1611155b1515612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b86846000811115156126d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f626f6e64206d75737420626520706f736974697665000000000000000000000081525060200191505060405180910390fd5b61270460026005600085600019166000191681526020019081526020016000206006015461598190919063ffffffff16565b81101515156127a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f626f6e64206d75737420626520646f75626c65206174206c656173742070726581526020017f76696f757320626f6e640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8887600081111561284357806005600084600019166000191681526020019081526020016000206006015411151515612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b61284c88615696565b61285a8b8b338b60006159bc565b6128938b8b600560008f6000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff16615bd4565b5050505050505050505050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b81019080805190602001909291905050501515612a3357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708826040518082815260200191505060405180910390a250565b60008085600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16111515612b37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff161480612b8e57504263ffffffff168263ffffffff16115b1515612c28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686181526020017f766520706173736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480612c7a57504263ffffffff168163ffffffff1611155b1515612cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b8787604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612d535780518252602082019150602081019050602083039250612d2e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515612df75780518252602082019150602081019050602083039250612dd2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935060076000856000191660001916815260200190815260200160002060000160049054906101000a900460ff16151515612eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726581526020017f7665616c6564207965740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b4263ffffffff1660076000866000191660001916815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16111515612fc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f72657665616c20646561646c696e65206d757374206e6f74206861766520706181526020017f737365640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b876007600086600019166000191681526020019081526020016000206001018160001916905550600160076000866000191660001916815260200190815260200160002060000160046101000a81548160ff021916908315150217905550600560008a6000191660001916815260200190815260200160002060060154861415613082576130818989600560008d6000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff16615bd4565b5b84600019163373ffffffffffffffffffffffffffffffffffffffff168a600019167fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f8b8b8b604051808460001916600019168152602001838152602001828152602001935050505060405180910390a4505050505050505050565b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60046020528060005260406000206000915090505481565b6000600560008360001916600019168152602001908152602001600020600001549050919050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b60086020528060005260406000206000915090505481565b60016020528060005260406000206000915090505481565b600080600080600360008b8152602001908152602001600020541115156132f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f74656d706c617465206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b888589604051602001808481526020018363ffffffff1663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040182805190602001908083835b60208310151561336a5780518252602082019150602081019050602083039250613345565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156133d557805182526020820191506020810190506020830392506133b0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915081878733876040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018463ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561352257805182526020820191506020810190506020830392506134fd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061356081838989896000615c55565b81600019163373ffffffffffffffffffffffffffffffffffffffff1682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405180888152602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015613651578082015181840152602081019050613636565b50505050905090810190601f16801561367e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a480925050509695505050505050565b600080600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff16905060056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161580156137195750600063ffffffff168163ffffffff16115b801561373157504263ffffffff168163ffffffff1611155b915050919050565b6000600560008360001916600019168152602001908152602001600020600501549050919050565b60076020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900460ff16908060010154905083565b6000806002549050436003600083815260200190815260200160002081905550826040516020018082805190602001908083835b60208310151561380157805182526020820191506020810190506020830392506137dc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310151561386a5780518252602082019150602081019050602083039250613845565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206004600083815260200190815260200160002081600019169055503373ffffffffffffffffffffffffffffffffffffffff16817fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4856040518080602001828103825283818151815260200191508051906020019080838360005b8381101561392c578082015181840152602081019050613911565b50505050905090810190601f1680156139595780820380516001836020036101000a031916815260200191505b509250505060405180910390a361397a60018261535490919063ffffffff16565b60028190555080915050919050565b6000600560008360001916600019168152602001908152602001600020600401549050919050565b600060056000836000191660001916815260200190815260200160002060020160009054906101000a900460ff169050919050565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900463ffffffff16908060010160189054906101000a900463ffffffff169080600101601c9054906101000a900463ffffffff16908060020160009054906101000a900460ff1690806003015490806004015490806005015490806006015490508a565b600060056000836000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff169050919050565b600060056000836000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff169050919050565b600080613b13886137a8565b9050613b23818888888888613269565b9150509695505050505050565b600081613b3c816136a0565b1515613bb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060040154915050919050565b60008086600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16111515613c8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff16151515613d51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff161480613da857504263ffffffff168263ffffffff16115b1515613e42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480613e9457504263ffffffff168163ffffffff1611155b1515613f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b8986600081111515613f82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f626f6e64206d75737420626520706f736974697665000000000000000000000081525060200191505060405180910390fd5b613fb460026005600085600019166000191681526020019081526020016000206006015461598190919063ffffffff16565b8110151515614051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f626f6e64206d75737420626520646f75626c65206174206c656173742070726581526020017f76696f757320626f6e640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8b8a60008111156140f3578060056000846000191660001916815260200190815260200160002060060154111515156140f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b6140fc8a615696565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515614171578051825260208201915060208101905060208303925061414c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209850600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16146141da578a6141dc565b335b97506141e88e8a6161be565b6141f68e8a8a8d60016159bc565b5050505050505050505050505050565b6000600560008360001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169050919050565b60036020528060005260406000206000915090505481565b600081614262816136a0565b15156142d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060040154915050919050565b600080600061430b84615696565b6000600360008c815260200190815260200160002054111515614396576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f74656d706c617465206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b89868a604051602001808481526020018363ffffffff1663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040182805190602001908083835b60208310151561440857805182526020820191506020810190506020830392506143e3565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083101515614473578051825260208201915060208101905060208303925061444e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915081888833886040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018463ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156145c0578051825260208201915060208101905060208303925061459b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506145fd81838a8a8a89615c55565b81600019163373ffffffffffffffffffffffffffffffffffffffff1682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405180888152602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b838110156146ee5780820151818401526020810190506146d3565b50505050905090810190601f16801561471b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a48092505050979650505050505050565b8260056000826000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6d73672e73656e646572206d7573742062652061726269747261746f7200000081525060200191505060405180910390fd5b83600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff161115156148d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff16151515614997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff1614806149ee57504263ffffffff168263ffffffff16115b1515614a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480614ada57504263ffffffff168163ffffffff1611155b1515614b4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b86856000811115614bf057806005600084600019166000191681526020019081526020016000206006015411151515614bef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b6000600560008b6000191660001916815260200190815260200160002060060154111515614cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001807f5175657374696f6e206d75737420616c7265616479206861766520616e20616e81526020017f73776572207768656e206172626974726174696f6e206973207265717565737481526020017f656400000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b6001600560008b6000191660001916815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508773ffffffffffffffffffffffffffffffffffffffff1689600019167f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b476260405160405180910390a3505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8260056000826000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614e63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6d73672e73656e646572206d7573742062652061726269747261746f7200000081525060200191505060405180910390fd5b8360056000826000191660001916815260200190815260200160002060020160009054906101000a900460ff161515614f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f7175657374696f6e206d7573742062652070656e64696e67206172626974726181526020017f74696f6e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616e737765726572206d7573742062652070726f76696465640000000000000081525060200191505060405180910390fd5b836000191685600019167f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9760405160405180910390a3600060056000876000191660001916815260200190815260200160002060020160006101000a81548160ff02191690831515021790555061504a8585856000806159bc565b61505685856000615bd4565b5050505050565b600084848484600160405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156151465780518252602082019150602081019050602083039250615121565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019168660001916141561518b576001905061534b565b84848484600060405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515615272578051825260208201915060208101905060208303925061524d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916866000191614156152b7576000905061534b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f486973746f727920696e7075742070726f766964656420646964206e6f74206d81526020017f617463682074686520657870656374656420686173680000000000000000000081525060400191505060405180910390fd5b95945050505050565b600080828401905083811015151561536857fe5b8091505092915050565b60008060008084156154825785915060076000836000191660001916815260200190815260200160002060000160049054906101000a900460ff16151561540f57600760008360001916600019168152602001908152602001600020600080820160006101000a81549063ffffffff02191690556000820160046101000a81549060ff02191690556001820160009055505089899350935061559a565b600760008360001916600019168152602001908152602001600020600101549550600760008360001916600019168152602001908152602001600020600080820160006101000a81549063ffffffff02191690556000820160046101000a81549060ff0219169055600182016000905550505b8a600019168660001916141561559357600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415615526578798506154fb600560008e60001916600019168152602001908152602001600020600301548b61535490919063ffffffff16565b99506000600560008e6000191660001916815260200190815260200160002060030181905550615592565b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151561559157868a1015615569578961556b565b865b905061558a8c8a615585848e61633490919063ffffffff16565b6155a9565b8798508099505b5b5b8989935093505b50509850989650505050505050565b6155fb81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461535490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1683600019167f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6836040518082815260200191505060405180910390a3505050565b6000808214156156a55761597d565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156157af5781811015156157545761570c828261633490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061597d565b615767818361633490919063ffffffff16565b91506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156158a757600080fd5b505af11580156158bb573d6000803e3d6000fd5b505050506040513d60208110156158d157600080fd5b8101908080519060200190929190505050151561597c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756681526020017f66696369656e7420617070726f7665642062616c616e63653f0000000000000081525060400191505060405180910390fd5b5b5050565b600080600084141561599657600091506159b5565b82840290508284828115156159a757fe5b041415156159b157fe5b8091505b5092915050565b6000600560008760001916600019168152602001908152602001600020600501548584868560405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515615ac25780518252602082019150602081019050602083039250615a9d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115615b1e5782600560008860001916600019168152602001908152602001600020600601819055505b8060056000886000191660001916815260200190815260200160002060050181600019169055508373ffffffffffffffffffffffffffffffffffffffff1686600019167fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e622187848742886040518086600019166000191681526020018560001916600019168152602001848152602001838152602001821515151581526020019550505050505060405180910390a3505050505050565b816005600085600019166000191681526020019081526020016000206004018160001916905550615c14814263ffffffff1661634d90919063ffffffff16565b600560008560001916600019168152602001908152602001600020600101601c6101000a81548163ffffffff021916908363ffffffff160217905550505050565b60008087600060056000836000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16141515615d05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f7175657374696f6e206d757374206e6f7420657869737400000000000000000081525060200191505060405180910390fd5b83925060008663ffffffff16111515615d86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f74696d656f7574206d75737420626520706f736974697665000000000000000081525060200191505060405180910390fd5b6301e133808663ffffffff16101515615e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f74696d656f7574206d757374206265206c657373207468616e2033363520646181526020017f797300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515615ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f61726269747261746f72206d757374206265207365740000000000000000000081525060200191505060405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561609257600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150818310151515615fe7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f546f6b656e732070726f7669646564206d75737420636f76657220717565737481526020017f696f6e206665650000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b615ffa828461633490919063ffffffff16565b925061604e82600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461535490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b87600560008b60001916600019168152602001908152602001600020600001816000191690555086600560008b6000191660001916815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560008b6000191660001916815260200190815260200160002060010160146101000a81548163ffffffff021916908363ffffffff16021790555085600560008b6000191660001916815260200190815260200160002060010160186101000a81548163ffffffff021916908363ffffffff16021790555082600560008b6000191660001916815260200190815260200160002060030181905550505050505050505050565b60008060076000846000191660001916815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16141515616291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600863ffffffff1660056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff168115156162d757fe5b0490506162f3814263ffffffff1661634d90919063ffffffff16565b60076000846000191660001916815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff160217905550505050565b600082821115151561634257fe5b818303905092915050565b60008082840190508363ffffffff168163ffffffff161015151561636d57fe5b80915050929150505600a165627a7a72305820bc6e5835dc4d82d6d0dff09c6c15da263c94f9c8951c042ee35f2804e483d3b90029",
  "deployedBytecode": "0x6080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631101a0fd146101d2578063128b7a471461030f57806312a203c31461034a578063144fa6d7146103df5780632417395c146104225780632518904c1461046757806326d6c97b146104d857806328828b1e1461051d5780632f998a6f146106d25780633ccfd60b146107255780634dc266b41461073c5780634df6ca2a1461078f5780634e60f883146107bc57806351577ea914610805578063590158a7146108525780636fa42742146108d157806370a0823114610928578063762c38fd1461097f5780637f8d429e14610a5857806382ffa9f714610aa1578063839df94514610aee57806383bf460914610b595780638d552d4614610bd6578063924532fb14610c2357806395addb9014610c6c5780639e63fa6a14610d5c5780639f1025c614610dad578063a1130d0414610dfe578063a462fb7b14610f13578063ac7b2a5f14610f60578063acae8f4e14610fd3578063bc52565214611024578063d09cc57e14611065578063d4876b9f146110b2578063f6a94ecb14611195578063fc0c546a146111f0578063fe92049d14611247575b600080fd5b3480156101de57600080fd5b5061030d6004803603810190808035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506112a6565b005b34801561031b57600080fd5b5061034860048036038101908080356000191690602001909291908035906020019092919050505061176b565b005b34801561035657600080fd5b506103c160048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050611b75565b60405180826000191660001916815260200191505060405180910390f35b3480156103eb57600080fd5b50610420600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee6565b005b34801561042e57600080fd5b506104516004803603810190808035600019169060200190929190505050612014565b6040518082815260200191505060405180910390f35b34801561047357600080fd5b50610496600480360381019080803560001916906020019092919050505061203c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e457600080fd5b506105076004803603810190808035600019169060200190929190505050612084565b6040518082815260200191505060405180910390f35b34801561052957600080fd5b506106d06004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506120ac565b005b3480156106de57600080fd5b5061072360048036038101908080356000191690602001909291908035600019169060200190929190803590602001909291908035906020019092919050505061232a565b005b34801561073157600080fd5b5061073a6128a0565b005b34801561074857600080fd5b5061078d600480360381019080803560001916906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050612a84565b005b34801561079b57600080fd5b506107ba600480360381019080803590602001909291905050506130fd565b005b3480156107c857600080fd5b506107e7600480360381019080803590602001909291905050506131af565b60405180826000191660001916815260200191505060405180910390f35b34801561081157600080fd5b5061083460048036038101908080356000191690602001909291905050506131c7565b60405180826000191660001916815260200191505060405180910390f35b34801561085e57600080fd5b5061088160048036038101908080356000191690602001909291905050506131ef565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b3480156108dd57600080fd5b50610912600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613239565b6040518082815260200191505060405180910390f35b34801561093457600080fd5b50610969600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613251565b6040518082815260200191505060405180910390f35b34801561098b57600080fd5b50610a3a60048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050613269565b60405180826000191660001916815260200191505060405180910390f35b348015610a6457600080fd5b50610a8760048036038101908080356000191690602001909291905050506136a0565b604051808215151515815260200191505060405180910390f35b348015610aad57600080fd5b50610ad06004803603810190808035600019169060200190929190505050613739565b60405180826000191660001916815260200191505060405180910390f35b348015610afa57600080fd5b50610b1d6004803603810190808035600019169060200190929190505050613761565b604051808463ffffffff1663ffffffff168152602001831515151581526020018260001916600019168152602001935050505060405180910390f35b348015610b6557600080fd5b50610bc0600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506137a8565b6040518082815260200191505060405180910390f35b348015610be257600080fd5b50610c056004803603810190808035600019169060200190929190505050613989565b60405180826000191660001916815260200191505060405180910390f35b348015610c2f57600080fd5b50610c5260048036038101908080356000191690602001909291905050506139b1565b604051808215151515815260200191505060405180910390f35b348015610c7857600080fd5b50610c9b60048036038101908080356000191690602001909291905050506139e6565b604051808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018963ffffffff1663ffffffff1681526020018863ffffffff1663ffffffff1681526020018763ffffffff1663ffffffff16815260200186151515158152602001858152602001846000191660001916815260200183600019166000191681526020018281526020019a505050505050505050505060405180910390f35b348015610d6857600080fd5b50610d8b6004803603810190808035600019169060200190929190505050613a97565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610db957600080fd5b50610ddc6004803603810190808035600019169060200190929190505050613acf565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610e0a57600080fd5b50610ef5600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190505050613b07565b60405180826000191660001916815260200191505060405180910390f35b348015610f1f57600080fd5b50610f426004803603810190808035600019169060200190929190505050613b30565b60405180826000191660001916815260200191505060405180910390f35b348015610f6c57600080fd5b50610fd16004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bd7565b005b348015610fdf57600080fd5b506110026004803603810190808035600019169060200190929190505050614206565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561103057600080fd5b5061104f6004803603810190808035906020019092919050505061423e565b6040518082815260200191505060405180910390f35b34801561107157600080fd5b506110946004803603810190808035600019169060200190929190505050614256565b60405180826000191660001916815260200191505060405180910390f35b3480156110be57600080fd5b5061117760048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506142fd565b60405180826000191660001916815260200191505060405180910390f35b3480156111a157600080fd5b506111ee6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061473e565b005b3480156111fc57600080fd5b50611205614d5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561125357600080fd5b506112a460048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614d81565b005b60008060008060008060008b6112bb816136a0565b151561132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60008c511115156113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f6174206c65617374206f6e6520686973746f7279206861736820656e7472792081526020017f6d7573742062652070726f76696465640000000000000000000000000000000081525060400191505060405180910390fd5b600660008e6000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169750600660008e60001916600019168152602001908152602001600020600101549650600660008e60001916600019168152602001908152602001600020600201549550600560008e60001916600019168152602001908152602001600020600501549450600560008e60001916600019168152602001908152602001600020600401549350600092505b8b518310156115bf5761150a858d858151811015156114b357fe5b906020019060200201518b868151811015156114cb57fe5b906020019060200201518d878151811015156114e357fe5b906020019060200201518f888151811015156114fb57fe5b9060200190602002015161505d565b915061151f878761535490919063ffffffff16565b95506115768d85888b8f8881518110151561153657fe5b906020019060200201518f8981518110151561154e57fe5b906020019060200201518f8a81518110151561156657fe5b9060200190602002015189615372565b8099508197505050898381518110151561158c57fe5b9060200190602002015196508b838151811015156115a657fe5b9060200190602002015194508280600101935050611498565b60006001026000191685600019161415156116c257600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151561161a576116158d89886155a9565b600095505b87600660008f6000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600660008f600019166000191681526020019081526020016000206001018190555085600660008f6000191660001916815260200190815260200160002060020181905550611735565b6116df8d896116da8a8a61535490919063ffffffff16565b6155a9565b600660008e60001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905550505b84600560008f60001916600019168152602001908152602001600020600501816000191690555050505050505050505050505050565b81600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff1611151561181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161515156118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff16148061193957504263ffffffff168263ffffffff16115b15156119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480611a2557504263ffffffff168163ffffffff1611155b1515611a99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b611aa284615696565b611ad3846005600088600019166000191681526020019081526020016000206003015461535490919063ffffffff16565b600560008760001916600019168152602001908152602001600020600301819055503373ffffffffffffffffffffffffffffffffffffffff1685600019167f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6686600560008a6000191660001916815260200190815260200160002060030154604051808381526020018281526020019250505060405180910390a35050505050565b600085611b81816136a0565b1515611bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060000154600019168660001916141515611c92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f636f6e74656e742068617368206d757374206d6174636800000000000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611d73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f61726269747261746f72206d757374206d61746368000000000000000000000081525060200191505060405180910390fd5b60056000886000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff168463ffffffff1611151515611e25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f74696d656f7574206d757374206265206c6f6e6720656e6f756768000000000081525060200191505060405180910390fd5b600560008860001916600019168152602001908152602001600020600601548311151515611ebb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f626f6e64206d757374206265206869676820656e6f756768000000000000000081525060200191505060405180910390fd5b6005600088600019166000191681526020019081526020016000206004015491505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e81526020017f636500000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008360001916600019168152602001908152602001600020600301549050919050565b600060056000836000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008360001916600019168152602001908152602001600020600601549050919050565b60008060008060608060608060008098505b8e51891015612311578e898151811015156120d557fe5b9060200190602002015196508d898151811015156120ef57fe5b9060200190602002015195508560405190808252806020026020018201604052801561212a5781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561215c5781602001602082028038833980820191505090505b5093508560405190808252806020026020018201604052801561218e5781602001602082028038833980820191505090505b509250856040519080825280602002602001820160405280156121c05781602001602082028038833980820191505090505b509150600090505b858110156122f7578c888151811015156121de57fe5b9060200190602002015185828151811015156121f657fe5b9060200190602002019060001916908160001916815250508b8881518110151561221c57fe5b90602001906020020151848281518110151561223457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508a8881518110151561227e57fe5b90602001906020020151838281518110151561229657fe5b906020019060200201818152505089888151811015156122b257fe5b9060200190602002015182828151811015156122ca57fe5b906020019060200201906000191690816000191681525050878060010198505080806001019150506121c8565b61230487868686866112a6565b88806001019950506120be565b6123196128a0565b505050505050505050505050505050565b83600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff161115156123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161515156124a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff1614806124f857504263ffffffff168263ffffffff16115b1515612592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff1614806125e457504263ffffffff168163ffffffff1611155b1515612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b86846000811115156126d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f626f6e64206d75737420626520706f736974697665000000000000000000000081525060200191505060405180910390fd5b61270460026005600085600019166000191681526020019081526020016000206006015461598190919063ffffffff16565b81101515156127a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f626f6e64206d75737420626520646f75626c65206174206c656173742070726581526020017f76696f757320626f6e640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8887600081111561284357806005600084600019166000191681526020019081526020016000206006015411151515612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b61284c88615696565b61285a8b8b338b60006159bc565b6128938b8b600560008f6000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff16615bd4565b5050505050505050505050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b81019080805190602001909291905050501515612a3357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708826040518082815260200191505060405180910390a250565b60008085600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16111515612b37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff161480612b8e57504263ffffffff168263ffffffff16115b1515612c28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686181526020017f766520706173736564000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480612c7a57504263ffffffff168163ffffffff1611155b1515612cee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b8787604051602001808360001916600019168152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612d535780518252602082019150602081019050602083039250612d2e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515612df75780518252602082019150602081019050602083039250612dd2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935060076000856000191660001916815260200190815260200160002060000160049054906101000a900460ff16151515612eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726581526020017f7665616c6564207965740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b4263ffffffff1660076000866000191660001916815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16111515612fc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f72657665616c20646561646c696e65206d757374206e6f74206861766520706181526020017f737365640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b876007600086600019166000191681526020019081526020016000206001018160001916905550600160076000866000191660001916815260200190815260200160002060000160046101000a81548160ff021916908315150217905550600560008a6000191660001916815260200190815260200160002060060154861415613082576130818989600560008d6000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff16615bd4565b5b84600019163373ffffffffffffffffffffffffffffffffffffffff168a600019167fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f8b8b8b604051808460001916600019168152602001838152602001828152602001935050505060405180910390a4505050505050505050565b80600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60046020528060005260406000206000915090505481565b6000600560008360001916600019168152602001908152602001600020600001549050919050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b60086020528060005260406000206000915090505481565b60016020528060005260406000206000915090505481565b600080600080600360008b8152602001908152602001600020541115156132f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f74656d706c617465206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b888589604051602001808481526020018363ffffffff1663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040182805190602001908083835b60208310151561336a5780518252602082019150602081019050602083039250613345565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156133d557805182526020820191506020810190506020830392506133b0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915081878733876040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018463ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561352257805182526020820191506020810190506020830392506134fd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061356081838989896000615c55565b81600019163373ffffffffffffffffffffffffffffffffffffffff1682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405180888152602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015613651578082015181840152602081019050613636565b50505050905090810190601f16801561367e5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a480925050509695505050505050565b600080600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff16905060056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff161580156137195750600063ffffffff168163ffffffff16115b801561373157504263ffffffff168163ffffffff1611155b915050919050565b6000600560008360001916600019168152602001908152602001600020600501549050919050565b60076020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900460ff16908060010154905083565b6000806002549050436003600083815260200190815260200160002081905550826040516020018082805190602001908083835b60208310151561380157805182526020820191506020810190506020830392506137dc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310151561386a5780518252602082019150602081019050602083039250613845565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206004600083815260200190815260200160002081600019169055503373ffffffffffffffffffffffffffffffffffffffff16817fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4856040518080602001828103825283818151815260200191508051906020019080838360005b8381101561392c578082015181840152602081019050613911565b50505050905090810190601f1680156139595780820380516001836020036101000a031916815260200191505b509250505060405180910390a361397a60018261535490919063ffffffff16565b60028190555080915050919050565b6000600560008360001916600019168152602001908152602001600020600401549050919050565b600060056000836000191660001916815260200190815260200160002060020160009054906101000a900460ff169050919050565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900463ffffffff16908060010160189054906101000a900463ffffffff169080600101601c9054906101000a900463ffffffff16908060020160009054906101000a900460ff1690806003015490806004015490806005015490806006015490508a565b600060056000836000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff169050919050565b600060056000836000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff169050919050565b600080613b13886137a8565b9050613b23818888888888613269565b9150509695505050505050565b600081613b3c816136a0565b1515613bb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060040154915050919050565b60008086600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16111515613c8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff16151515613d51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff161480613da857504263ffffffff168263ffffffff16115b1515613e42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480613e9457504263ffffffff168163ffffffff1611155b1515613f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b8986600081111515613f82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f626f6e64206d75737420626520706f736974697665000000000000000000000081525060200191505060405180910390fd5b613fb460026005600085600019166000191681526020019081526020016000206006015461598190919063ffffffff16565b8110151515614051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f626f6e64206d75737420626520646f75626c65206174206c656173742070726581526020017f76696f757320626f6e640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8b8a60008111156140f3578060056000846000191660001916815260200190815260200160002060060154111515156140f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b6140fc8a615696565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083101515614171578051825260208201915060208101905060208303925061414c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209850600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16146141da578a6141dc565b335b97506141e88e8a6161be565b6141f68e8a8a8d60016159bc565b5050505050505050505050505050565b6000600560008360001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169050919050565b60036020528060005260406000206000915090505481565b600081614262816136a0565b15156142d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7175657374696f6e206d7573742062652066696e616c697a656400000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060040154915050919050565b600080600061430b84615696565b6000600360008c815260200190815260200160002054111515614396576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f74656d706c617465206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b89868a604051602001808481526020018363ffffffff1663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040182805190602001908083835b60208310151561440857805182526020820191506020810190506020830392506143e3565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083101515614473578051825260208201915060208101905060208303925061444e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915081888833886040516020018086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018463ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156145c0578051825260208201915060208101905060208303925061459b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506145fd81838a8a8a89615c55565b81600019163373ffffffffffffffffffffffffffffffffffffffff1682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405180888152602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b838110156146ee5780820151818401526020810190506146d3565b50505050905090810190601f16801561471b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a48092505050979650505050505050565b8260056000826000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6d73672e73656e646572206d7573742062652061726269747261746f7200000081525060200191505060405180910390fd5b83600080600060056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff161115156148d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7175657374696f6e206d7573742065786973740000000000000000000000000081525060200191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060020160009054906101000a900460ff16151515614997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f7175657374696f6e206d757374206e6f742062652070656e64696e672061726281526020017f6974726174696f6e00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008460001916600019168152602001908152602001600020600101601c9054906101000a900463ffffffff169150600063ffffffff168263ffffffff1614806149ee57504263ffffffff168263ffffffff16115b1515614a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206881526020017f617665207061737365640000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000846000191660001916815260200190815260200160002060010160149054906101000a900463ffffffff16905060008163ffffffff161480614ada57504263ffffffff168163ffffffff1611155b1515614b4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f70656e696e672064617465206d75737420686176652070617373656400000081525060200191505060405180910390fd5b86856000811115614bf057806005600084600019166000191681526020019081526020016000206006015411151515614bef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f626f6e64206d75737420657863656564206d61785f70726576696f757300000081525060200191505060405180910390fd5b5b6000600560008b6000191660001916815260200190815260200160002060060154111515614cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001807f5175657374696f6e206d75737420616c7265616479206861766520616e20616e81526020017f73776572207768656e206172626974726174696f6e206973207265717565737481526020017f656400000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b6001600560008b6000191660001916815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508773ffffffffffffffffffffffffffffffffffffffff1689600019167f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b476260405160405180910390a3505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8260056000826000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614e63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6d73672e73656e646572206d7573742062652061726269747261746f7200000081525060200191505060405180910390fd5b8360056000826000191660001916815260200190815260200160002060020160009054906101000a900460ff161515614f2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f7175657374696f6e206d7573742062652070656e64696e67206172626974726181526020017f74696f6e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f616e737765726572206d7573742062652070726f76696465640000000000000081525060200191505060405180910390fd5b836000191685600019167f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9760405160405180910390a3600060056000876000191660001916815260200190815260200160002060020160006101000a81548160ff02191690831515021790555061504a8585856000806159bc565b61505685856000615bd4565b5050505050565b600084848484600160405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156151465780518252602082019150602081019050602083039250615121565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019168660001916141561518b576001905061534b565b84848484600060405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515615272578051825260208201915060208101905060208303925061524d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916866000191614156152b7576000905061534b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f486973746f727920696e7075742070726f766964656420646964206e6f74206d81526020017f617463682074686520657870656374656420686173680000000000000000000081525060400191505060405180910390fd5b95945050505050565b600080828401905083811015151561536857fe5b8091505092915050565b60008060008084156154825785915060076000836000191660001916815260200190815260200160002060000160049054906101000a900460ff16151561540f57600760008360001916600019168152602001908152602001600020600080820160006101000a81549063ffffffff02191690556000820160046101000a81549060ff02191690556001820160009055505089899350935061559a565b600760008360001916600019168152602001908152602001600020600101549550600760008360001916600019168152602001908152602001600020600080820160006101000a81549063ffffffff02191690556000820160046101000a81549060ff0219169055600182016000905550505b8a600019168660001916141561559357600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415615526578798506154fb600560008e60001916600019168152602001908152602001600020600301548b61535490919063ffffffff16565b99506000600560008e6000191660001916815260200190815260200160002060030181905550615592565b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151561559157868a1015615569578961556b565b865b905061558a8c8a615585848e61633490919063ffffffff16565b6155a9565b8798508099505b5b5b8989935093505b50509850989650505050505050565b6155fb81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461535490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1683600019167f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6836040518082815260200191505060405180910390a3505050565b6000808214156156a55761597d565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156157af5781811015156157545761570c828261633490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061597d565b615767818361633490919063ffffffff16565b91506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156158a757600080fd5b505af11580156158bb573d6000803e3d6000fd5b505050506040513d60208110156158d157600080fd5b8101908080519060200190929190505050151561597c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756681526020017f66696369656e7420617070726f7665642062616c616e63653f0000000000000081525060400191505060405180910390fd5b5b5050565b600080600084141561599657600091506159b5565b82840290508284828115156159a757fe5b041415156159b157fe5b8091505b5092915050565b6000600560008760001916600019168152602001908152602001600020600501548584868560405160200180866000191660001916815260200185600019166000191681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182151515157f0100000000000000000000000000000000000000000000000000000000000000028152600101955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515615ac25780518252602082019150602081019050602083039250615a9d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115615b1e5782600560008860001916600019168152602001908152602001600020600601819055505b8060056000886000191660001916815260200190815260200160002060050181600019169055508373ffffffffffffffffffffffffffffffffffffffff1686600019167fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e622187848742886040518086600019166000191681526020018560001916600019168152602001848152602001838152602001821515151581526020019550505050505060405180910390a3505050505050565b816005600085600019166000191681526020019081526020016000206004018160001916905550615c14814263ffffffff1661634d90919063ffffffff16565b600560008560001916600019168152602001908152602001600020600101601c6101000a81548163ffffffff021916908363ffffffff160217905550505050565b60008087600060056000836000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff16141515615d05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f7175657374696f6e206d757374206e6f7420657869737400000000000000000081525060200191505060405180910390fd5b83925060008663ffffffff16111515615d86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f74696d656f7574206d75737420626520706f736974697665000000000000000081525060200191505060405180910390fd5b6301e133808663ffffffff16101515615e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f74696d656f7574206d757374206265206c657373207468616e2033363520646181526020017f797300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515615ed2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f61726269747261746f72206d757374206265207365740000000000000000000081525060200191505060405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561609257600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150818310151515615fe7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f546f6b656e732070726f7669646564206d75737420636f76657220717565737481526020017f696f6e206665650000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b615ffa828461633490919063ffffffff16565b925061604e82600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461535490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b87600560008b60001916600019168152602001908152602001600020600001816000191690555086600560008b6000191660001916815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600560008b6000191660001916815260200190815260200160002060010160146101000a81548163ffffffff021916908363ffffffff16021790555085600560008b6000191660001916815260200190815260200160002060010160186101000a81548163ffffffff021916908363ffffffff16021790555082600560008b6000191660001916815260200190815260200160002060030181905550505050505050505050565b60008060076000846000191660001916815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16141515616291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600863ffffffff1660056000856000191660001916815260200190815260200160002060010160189054906101000a900463ffffffff1663ffffffff168115156162d757fe5b0490506162f3814263ffffffff1661634d90919063ffffffff16565b60076000846000191660001916815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff160217905550505050565b600082821115151561634257fe5b818303905092915050565b60008082840190508363ffffffff168163ffffffff161015151561636d57fe5b80915050929150505600a165627a7a72305820bc6e5835dc4d82d6d0dff09c6c15da263c94f9c8951c042ee35f2804e483d3b90029",
  "sourceMap": "133:38165:14:-;;;3067:1;3042:26;;6011:564;8:9:-1;5:2;;;30:1;27;20:12;5:2;6011:564:14;6047:81;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:81;;;:::i;:::-;;6138:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:97;;;:::i;:::-;;6245:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:108;;;:::i;:::-;;6363:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:110;;;:::i;:::-;;6483:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:85;;;:::i;:::-;;133:38165;;7408:348;7488:7;7507:10;7520:14;;7507:27;;7560:12;7544:9;:13;7554:2;7544:13;;;;;;;;;;;:28;;;;7631:7;7614:25;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7614:25:14;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7614:25:14;;;7604:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7604:36:14;;;;;;;;;;;;;;;;7582:15;:19;7598:2;7582:19;;;;;;;;;;;:58;;;;;;;7674:10;7655:39;;7670:2;7655:39;7686:7;7655:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7655:39:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:9;7728:1;7721:2;:6;;;;;;:9;;;;;:::i;:::-;7704:14;:26;;;;7747:2;7740:9;;7408:348;;;;:::o;719:129:15:-;777:7;792:9;808:1;804;:5;792:17;;827:1;822;:6;;815:14;;;;;;842:1;835:8;;719:129;;;;;:::o;133:38165:14:-;;;;;;;",
  "deployedSourceMap": "133:38165:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27662:2779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27662:2779:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15257:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15257:340:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25687:657;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25687:657:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5693:157:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;37355:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37355:127:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35968:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35968:135:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38172:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38172:123:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34562:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34562:1003:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16141:467;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16141:467:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:212:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:212:2;;;;;;19807:905:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19807:905:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6849:179:14;;;;;;;;;;;;;;;;;;;;;;;;;;3124:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3124:50:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35709:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35709:138:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3231:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3231:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3340:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3340:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;106:44:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;106:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10171:763:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10171:763:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23900:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23900:275:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37907:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37907:138:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3285:49:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7408:348:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37587:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37587:136:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37025:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37025:151:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3180:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3180:45:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36238:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36238:133:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36498:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36498:128:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8630:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8630:416:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24390:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24390:176:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18176:656;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18176:656:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36765:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36765:135:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3074:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3074:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24768:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24768:171:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11906:829;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11906:829:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22120:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22120:506:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80:19:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;80:19:2;;;;;;;;;;;;;;;;;;;;;;;;;;;23222:500:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23222:500:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27662:2779;28044:13;28105:17;28174:20;28459:25;28533:19;28600:9;28797:18;27832:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27899:1;27875:14;:21;:25;27867:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28060:15;:28;28076:11;28060:28;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;28044:50;;28125:15;:28;28141:11;28125:28;;;;;;;;;;;;;;;;;:38;;;28105:58;;28197:15;:28;28213:11;28197:28;;;;;;;;;;;;;;;;;:41;;;28174:64;;28487:9;:22;28497:11;28487:22;;;;;;;;;;;;;;;;;:35;;;28459:63;;28555:9;:22;28565:11;28555:22;;;;;;;;;;;;;;;;;:34;;;28533:56;;28628:1;28624:5;;28619:746;28635:14;:21;28631:1;:25;28619:746;;;28818:97;28846:17;28865:14;28880:1;28865:17;;;;;;;;;;;;;;;;;;28884:7;28892:1;28884:10;;;;;;;;;;;;;;;;;;28896:5;28902:1;28896:8;;;;;;;;;;;;;;;;;;28906:5;28912:1;28906:8;;;;;;;;;;;;;;;;;;28818:27;:97::i;:::-;28797:118;;28957:27;28974:9;28957:12;:16;;:27;;;;:::i;:::-;28942:42;;29023:147;29060:11;29073;29086:12;29100:5;29124;29130:1;29124:8;;;;;;;;;;;;;;;;;;29134:5;29140:1;29134:8;;;;;;;;;;;;;;;;;;29144:7;29152:1;29144:10;;;;;;;;;;;;;;;;;;29156:13;29023:19;:147::i;:::-;28999:171;;;;;;;;29294:5;29300:1;29294:8;;;;;;;;;;;;;;;;;;29282:20;;29336:14;29351:1;29336:17;;;;;;;;;;;;;;;;;;29316:37;;28658:3;;;;;;;28619:746;;;427:1;419:10;;29380:30;;;:17;:30;;;;;29376:992;;;305:1;29815:21;;:5;:21;;;;29811:137;;;29856:43;29866:11;29879:5;29886:12;29856:9;:43::i;:::-;29932:1;29917:16;;29811:137;29999:5;29962:15;:28;29978:11;29962:28;;;;;;;;;;;;;;;;;:34;;;:42;;;;;;;;;;;;;;;;;;30059:9;30018:15;:28;30034:11;30018:28;;;;;;;;;;;;;;;;;:38;;:50;;;;30126:12;30082:15;:28;30098:11;30082:28;;;;;;;;;;;;;;;;;:41;;:56;;;;29376:992;;;30250:58;30260:11;30273:5;30280:27;30297:9;30280:12;:16;;:27;;;;:::i;:::-;30250:9;:58::i;:::-;30329:15;:28;30345:11;30329:28;;;;;;;;;;;;;;;;;;30322:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29376:992;30416:17;30378:9;:22;30388:11;30378:22;;;;;;;;;;;;;;;;;:35;;:55;;;;;;;27662:2779;;;;;;;;;;;;;:::o;15257:340::-;15344:11;4005:18;4189:17;3861:1;3828:9;:22;3838:11;3828:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:34;;;3820:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:9;:22;3915:11;3905:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;3904:46;3896:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:9;:22;4036:11;4026:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;4005:55;;553:1;4078:25;;:11;:25;;;:54;;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:9;:22;4219:11;4209:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4189:53;;4274:1;4260:10;:15;;;:44;;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15380:29;15402:6;15380:21;:29::i;:::-;15451:41;15485:6;15451:9;:22;15461:11;15451:22;;;;;;;;;;;;;;;;;:29;;;:33;;:41;;;;:::i;:::-;15419:9;:22;15429:11;15419:22;;;;;;;;;;;;;;;;;:29;;:73;;;;15579:10;15507:83;;15527:11;15507:83;;;;15540:6;15548:9;:22;15558:11;15548:22;;;;;;;;;;;;;;;;;:29;;;15507:83;;;;;;;;;;;;;;;;;;;;;;;;15257:340;;;;;:::o;25687:657::-;25908:7;25868:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25951:9;:22;25961:11;25951:22;;;;;;;;;;;;;;;;;:35;;;25935:51;;;:12;:51;;;;25927:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26046:9;:22;26056:11;26046:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;26032:47;;:10;:47;;;26024:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26138:9;:22;26148:11;26138:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;26123:45;;:11;:45;;;;26115:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26230:9;:22;26240:11;26230:22;;;;;;;;;;;;;;;;;:27;;;26218:8;:39;;26210:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26303:9;:22;26313:11;26303:22;;;;;;;;;;;;;;;;;:34;;;26296:41;;25687:657;;;;;;;;:::o;5693:157::-;5776:3;5760:20;;:5;;;;;;;;;;;:20;;;5752:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:6;5829:5;;:14;;;;;;;;;;;;;;;;;;5693:157;:::o;37355:127::-;37420:7;37446:9;:22;37456:11;37446:22;;;;;;;;;;;;;;;;;:29;;;37439:36;;37355:127;;;:::o;35968:135::-;36037:7;36063:9;:22;36073:11;36063:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;36056:40;;35968:135;;;:::o;38172:123::-;38235:7;38261:9;:22;38271:11;38261:22;;;;;;;;;;;;;;;;;:27;;;38254:34;;38172:123;;;:::o;34562:1003::-;34861:10;34881:9;34959:11;35003:10;35041:19;35094;35147;35200;35253:9;34910:1;34905:6;;34900:639;34918:12;:19;34913:2;:24;34900:639;;;34973:12;34986:2;34973:16;;;;;;;;;;;;;;;;;;34959:30;;35016:7;35024:2;35016:11;;;;;;;;;;;;;;;;;;35003:24;;35077:2;35063:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;35063:17:14;;;;35041:39;;35130:2;35116:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;35116:17:14;;;;35094:39;;35183:2;35169:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;35169:17:14;;;;35147:39;;35236:2;35222:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;35222:17:14;;;;35200:39;;35285:1;35281:5;;35276:205;35292:2;35288:1;:6;35276:205;;;35327:11;35339:1;35327:14;;;;;;;;;;;;;;;;;;35319:2;35322:1;35319:5;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;35367:5;35373:1;35367:8;;;;;;;;;;;;;;;;;;35359:2;35362:1;35359:5;;;;;;;;;;;;;;;;;:16;;;;;;;;;;;35401:5;35407:1;35401:8;;;;;;;;;;;;;;;;;;35393:2;35396:1;35393:5;;;;;;;;;;;;;;;;;:16;;;;;35435:7;35443:1;35435:10;;;;;;;;;;;;;;;;;;35427:2;35430:1;35427:5;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;35463:3;;;;;;;35296;;;;;;;35276:205;;;35494:34;35508:3;35513:2;35517;35521;35525;35494:13;:34::i;:::-;34939:4;;;;;;;34900:639;;;35548:10;:8;:10::i;:::-;34562:1003;;;;;;;;;;;;;;;:::o;16141:467::-;16262:11;4005:18;4189:17;3861:1;3828:9;:22;3838:11;3828:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:34;;;3820:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:9;:22;3915:11;3905:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;3904:46;3896:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:9;:22;4036:11;4026:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;4005:55;;553:1;4078:25;;:11;:25;;;:54;;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:9;:22;4219:11;4209:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4189:53;;4274:1;4260:10;:15;;;:44;;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16298:11;16311:6;5278:1;5269:6;:10;5261:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:34;5367:1;5335:9;:22;5345:11;5335:22;;;;;;;;;;;;;;;;;:27;;;:31;;:34;;;;:::i;:::-;5324:6;:46;;5316:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16362:11;16375:12;5557:1;5542:12;:16;5538:132;;;5613:12;5582:9;:22;5592:11;5582:22;;;;;;;;;;;;;;;;;:27;;;:43;;5574:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5538:132;16412:29;16434:6;16412:21;:29::i;:::-;16451:67;16471:11;16484:6;16492:10;16504:6;16512:5;16451:19;:67::i;:::-;16528:73;16549:11;16562:6;16570:9;:22;16580:11;16570:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;16528:20;:73::i;:::-;5427:1;;4349;;16141:467;;;;;;;:::o;241:212:2:-;283:11;297:9;:21;307:10;297:21;;;;;;;;;;;;;;;;283:35;;352:1;328:9;:21;338:10;328:21;;;;;;;;;;;;;;;:25;;;;371:5;;;;;;;;;;;:14;;;386:10;398:3;371:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;371:31:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;371:31:2;;;;;;;;;;;;;;;;363:40;;;;;;;;430:10;418:28;;;442:3;418:28;;;;;;;;;;;;;;;;;;241:212;:::o;19807:905:14:-;19977:19;20051:21;19940:11;4691:18;4874:17;4656:1;4623:9;:22;4633:11;4623:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:34;;;4615:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4712:9;:22;4722:11;4712:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;4691:55;;553:1;4764:25;;:11;:25;;;:54;;;;4814:3;4793:25;;:11;:25;;;4764:54;4756:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4894:9;:22;4904:11;4894:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4874:53;;4959:1;4945:10;:15;;;:44;;;;4985:3;4964:25;;:10;:25;;;;4945:44;4937:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20026:6;20034:5;20009:31;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20009:31:14;;;19999:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;19999:42:14;;;;;;;;;;;;;;;;19977:64;;20102:11;20115;20128:4;20085:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20085:48:14;;;20075:59;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;20075:59:14;;;;;;;;;;;;;;;;20051:83;;20154:11;:26;20166:13;20154:26;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;20153:39;20145:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20303:3;20257:50;;:11;:26;20269:13;20257:26;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:50;;;20249:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20404:6;20359:11;:26;20371:13;20359:26;;;;;;;;;;;;;;;;;:42;;:51;;;;;;;20461:4;20420:11;:26;20432:13;20420:26;;;;;;;;;;;;;;;;;:38;;;:45;;;;;;;;;;;;;;;;;;20488:9;:22;20498:11;20488:22;;;;;;;;;;;;;;;;;:27;;;20480:4;:35;20476:139;;;20531:73;20552:11;20565:6;20573:9;:22;20583:11;20573:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;20531:20;:73::i;:::-;20476:139;20671:11;20630:74;;;20659:10;20630:74;;20646:11;20630:74;;;;20684:6;20692:5;20699:4;20630:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19807:905;;;;;;;;;:::o;6849:179::-;6969:3;6930:24;:36;6955:10;6930:36;;;;;;;;;;;;;;;:42;;;;6987:34;7005:10;7017:3;6987:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:179;:::o;3124:50::-;;;;;;;;;;;;;;;;;:::o;35709:138::-;35779:7;35805:9;:22;35815:11;35805:22;;;;;;;;;;;;;;;;;:35;;;35798:42;;35709:138;;;:::o;3231:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3340:59::-;;;;;;;;;;;;;;;;;:::o;106:44:2:-;;;;;;;;;;;;;;;;;:::o;10171:763:14:-;10389:7;10478:20;10573:19;10442:1;10417:9;:22;10427:11;10417:22;;;;;;;;;;;;:26;10409:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10528:11;10541:10;10553:8;10511:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10511:51:14;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10511:51:14;;;10501:62;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10501:62:14;;;;;;;;;;;;;;;;10478:85;;10622:12;10636:10;10648:7;10657:10;10669:5;10605:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10605:70:14;;;10595:81;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10595:81:14;;;;;;;;;;;;;;;;10573:103;;10687:75;10700:11;10713:12;10727:10;10739:7;10748:10;10760:1;10687:12;:75::i;:::-;10840:12;10777:121;;;10805:10;10777:121;;10792:11;10777:121;;;;10817:11;10830:8;10854:10;10866:7;10875:10;10887:5;10894:3;10777:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10777:121:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10916:11;10909:18;;10171:763;;;;;;;;;;:::o;23900:275::-;23968:4;23984:18;24005:9;:22;24015:11;24005:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;23984:55;;24059:9;:22;24069:11;24059:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;24058:46;:76;;;;;553:1;24109:24;;:11;:24;;;24058:76;:108;;;;;24161:3;24139:26;;:11;:26;;;;24058:108;24049:119;;23900:275;;;;:::o;37907:138::-;37977:7;38003:9;:22;38013:11;38003:22;;;;;;;;;;;;;;;;;:35;;;37996:42;;37907:138;;;:::o;3285:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7408:348::-;7488:7;7507:10;7520:14;;7507:27;;7560:12;7544:9;:13;7554:2;7544:13;;;;;;;;;;;:28;;;;7631:7;7614:25;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7614:25:14;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7614:25:14;;;7604:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7604:36:14;;;;;;;;;;;;;;;;7582:15;:19;7598:2;7582:19;;;;;;;;;;;:58;;;;;;;7674:10;7655:39;;7670:2;7655:39;7686:7;7655:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7655:39:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:9;7728:1;7721:2;:6;;:9;;;;:::i;:::-;7704:14;:26;;;;7747:2;7740:9;;7408:348;;;;:::o;37587:136::-;37656:7;37682:9;:22;37692:11;37682:22;;;;;;;;;;;;;;;;;:34;;;37675:41;;37587:136;;;:::o;37025:151::-;37101:4;37124:9;:22;37134:11;37124:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;37117:52;;37025:151;;;:::o;3180:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;36238:133::-;36306:6;36331:9;:22;36341:11;36331:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;36324:40;;36238:133;;;:::o;36498:128::-;36564:6;36589:9;:22;36599:11;36589:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;36582:37;;36498:128;;;:::o;8630:416::-;8884:7;8903:19;8925:23;8940:7;8925:14;:23::i;:::-;8903:45;;8965:74;8977:11;8990:8;9000:10;9012:7;9021:10;9033:5;8965:11;:74::i;:::-;8958:81;;8630:416;;;;;;;;;:::o;24390:176::-;24499:7;24459:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24525:9;:22;24535:11;24525:22;;;;;;;;;;;;;;;;;:34;;;24518:41;;24390:176;;;;:::o;18176:656::-;18522:21;18617:16;18331:11;4005:18;4189:17;3861:1;3828:9;:22;3838:11;3828:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:34;;;3820:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:9;:22;3915:11;3905:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;3904:46;3896:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:9;:22;4036:11;4026:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;4005:55;;553:1;4078:25;;:11;:25;;;:54;;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:9;:22;4219:11;4209:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4189:53;;4274:1;4260:10;:15;;;:44;;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18367:11;18380:6;5278:1;5269:6;:10;5261:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:34;5367:1;5335:9;:22;5345:11;5335:22;;;;;;;;;;;;;;;;;:27;;;:31;;:34;;;;:::i;:::-;5324:6;:46;;5316:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18431:11;18444:12;5557:1;5542:12;:16;5538:132;;;5613:12;5582:9;:22;5592:11;5582:22;;;;;;;;;;;;;;;;;:27;;;:43;;5574:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5538:132;18482:29;18504:6;18482:21;:29::i;:::-;18573:11;18586;18599:6;18556:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;18556:50:14;;;18546:61;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;18546:61:14;;;;;;;;;;;;;;;;18522:85;;305:1;18637:25;;:9;:25;;;18636:52;;18679:9;18636:52;;;18666:10;18636:52;18617:71;;18699:44;18716:11;18729:13;18699:16;:44::i;:::-;18753:71;18773:11;18786:13;18801:8;18811:6;18819:4;18753:19;:71::i;:::-;5427:1;;4349;;18176:656;;;;;;;;;;:::o;36765:135::-;36834:6;36859:9;:22;36869:11;36859:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;36852:41;;36765:135;;;:::o;3074:44::-;;;;;;;;;;;;;;;;;:::o;24768:171::-;24872:7;24832:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24898:9;:22;24908:11;24898:22;;;;;;;;;;;;;;;;;:34;;;24891:41;;24768:171;;;;:::o;11906:829::-;12145:7;12274:20;12369:19;12165:29;12187:6;12165:21;:29::i;:::-;12238:1;12213:9;:22;12223:11;12213:22;;;;;;;;;;;;:26;12205:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12324:11;12337:10;12349:8;12307:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12307:51:14;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12307:51:14;;;12297:62;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12297:62:14;;;;;;;;;;;;;;;;12274:85;;12418:12;12432:10;12444:7;12453:10;12465:5;12401:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12401:70:14;;;12391:81;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12391:81:14;;;;;;;;;;;;;;;;12369:103;;12483:80;12496:11;12509:12;12523:10;12535:7;12544:10;12556:6;12483:12;:80::i;:::-;12641:12;12578:121;;;12606:10;12578:121;;12593:11;12578:121;;;;12618:11;12631:8;12655:10;12667:7;12676:10;12688:5;12695:3;12578:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12578:121:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12717:11;12710:18;;11906:829;;;;;;;;;;;:::o;22120:506::-;22242:11;3484:9;:22;3494:11;3484:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;3470:47;;:10;:47;;;3462:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22273:11;4005:18;4189:17;3861:1;3828:9;:22;3838:11;3828:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:34;;;3820:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:9;:22;3915:11;3905:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;3904:46;3896:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:9;:22;4036:11;4026:22;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;4005:55;;553:1;4078:25;;:11;:25;;;:54;;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:9;:22;4219:11;4209:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;4189:53;;4274:1;4260:10;:15;;;:44;;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22329:11;22342:12;5557:1;5542:12;:16;5538:132;;;5613:12;5582:9;:22;5592:11;5582:22;;;;;;;;;;;;;;;;;:27;;;:43;;5574:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5538:132;22417:1;22387:9;:22;22397:11;22387:22;;;;;;;;;;;;;;;;;:27;;;:31;22379:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22547:4;22499:9;:22;22509:11;22499:22;;;;;;;;;;;;;;;;;:45;;;:52;;;;;;;;;;;;;;;;;;22609:9;22566:53;;22596:11;22566:53;;;;;;;;;;;;;4349:1;;3561;;;22120:506;;;;:::o;80:19:2:-;;;;;;;;;;;;;:::o;23222:500:14:-;23335:11;3484:9;:22;3494:11;3484:22;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;3470:47;;:10;:47;;;3462:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23380:11;4435:9;:22;4445:11;4435:22;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;4427:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;305:1;23425:24;;:8;:24;;;;23417:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23519:6;23494:32;;;23506:11;23494:32;;;;;;;;;;;;;23585:5;23537:9;:22;23547:11;23537:22;;;;;;;;;;;;;;;;;:45;;;:53;;;;;;;;;;;;;;;;;;23600:60;23620:11;23633:6;23641:8;23651:1;23654:5;23600:19;:60::i;:::-;23670:44;23691:11;23704:6;23712:1;23670:20;:44::i;:::-;3561:1;23222:500;;;;:::o;30650:549::-;30829:4;30897:12;30911:6;30919:4;30925;30931;30880:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;30880:56:14;;;30870:67;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;30870:67:14;;;;;;;;;;;;;;;;30849:88;;;:17;:88;;;;30845:131;;;30961:4;30954:11;;;;30845:131;31037:12;31051:6;31059:4;31065;31071:5;31020:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;31020:57:14;;;31010:68;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;31010:68:14;;;;;;;;;;;;;;;;30989:89;;;:17;:89;;;;30985:133;;;31102:5;31095:12;;;;30985:133;31128:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30650:549;;;;;;;;:::o;719:129:15:-;777:7;792:9;808:1;804;:5;792:17;;827:1;822;:6;;815:14;;;;;;842:1;835:8;;719:129;;;;;:::o;31205:2412:14:-;31431:7;31440;31677:21;33155:27;31648:13;31644:482;;;31701:6;31677:30;;31823:11;:26;31835:13;31823:26;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;31822:39;31818:298;;;31888:11;:26;31900:13;31888:26;;;;;;;;;;;;;;;;;;31881:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31940:12;31954:5;31932:28;;;;;;31818:298;32008:11;:26;32020:13;32008:26;;;;;;;;;;;;;;;;;:42;;;31999:51;;32075:11;:26;32087:13;32075:26;;;;;;;;;;;;;;;;;;32068:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31644:482;32150:11;32140:21;;;:6;:21;;;;32136:1435;;;305:1;32182:21;;:5;:21;;;32178:1382;;;32360:4;32352:12;;32397:47;32414:9;:22;32424:11;32414:22;;;;;;;;;;;;;;;;;:29;;;32397:12;:16;;:47;;;;:::i;:::-;32382:62;;32494:1;32462:9;:22;32472:11;32462:22;;;;;;;;;;;;;;;;;:29;;:33;;;;32178:1382;;;32529:5;32521:13;;:4;:13;;;;32517:1043;;;33202:4;33186:12;:20;;33185:44;;33217:12;33185:44;;;33210:4;33185:44;33155:74;;33312:68;33322:11;33335:5;33342:37;33359:19;33342:12;:16;;:37;;;;:::i;:::-;33312:9;:68::i;:::-;33488:4;33480:12;;33525:19;33510:34;;32517:1043;32178:1382;32136:1435;33589:12;33603:5;33581:28;;;;31205:2412;;;;;;;;;;;;;;:::o;30447:197::-;30560:27;30581:5;30560:9;:16;30570:5;30560:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;30541:9;:16;30551:5;30541:16;;;;;;;;;;;;;;;:46;;;;30624:5;30602:35;;30611:11;30602:35;;;;30631:5;30602:35;;;;;;;;;;;;;;;;;;30447:197;;;:::o;12741:707::-;12871:11;12827:1;12817:6;:11;12813:48;;;12844:7;;12813:48;12885:9;:21;12895:10;12885:21;;;;;;;;;;;;;;;;12871:35;;12996:1;12990:3;:7;12986:258;;;13024:6;13017:3;:13;;13013:221;;;13074:15;13082:6;13074:3;:7;;:15;;;;:::i;:::-;13050:9;:21;13060:10;13050:21;;;;;;;;;;;;;;;:39;;;;13107:7;;13013:221;13161:15;13172:3;13161:6;:10;;:15;;;;:::i;:::-;13152:24;;13218:1;13194:9;:21;13204:10;13194:21;;;;;;;;;;;;;;;:25;;;;12986:258;13309:5;;;;;;;;;;;:18;;;13328:10;13348:4;13355:6;13309:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13309:53:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13309:53:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13309:53:14;;;;;;;;;;;;;;;;13301:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12741:707;;;:::o;159:173:15:-;217:7;272:9;241:1;236;:6;232:35;;;259:1;252:8;;;;232:35;288:1;284;:5;272:17;;311:1;306;302;:5;;;;;;;;:10;295:18;;;;;;326:1;319:8;;159:173;;;;;;:::o;20718:678:14:-;20882:24;20936:9;:22;20946:11;20936:22;;;;;;;;;;;;;;;;;:35;;;20973:23;20998:4;21004:8;21014:13;20919:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20919:109:14;;;20909:120;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;20909:120:14;;;;;;;;;;;;;;;;20882:147;;21144:1;21137:4;:8;21133:73;;;21191:4;21161:9;:22;21171:11;21161:22;;;;;;;;;;;;;;;;;:27;;:34;;;;21133:73;21253:16;21215:9;:22;21225:11;21215:22;;;;;;;;;;;;;;;;;:35;;:54;;;;;;;21354:8;21285:104;;21323:11;21285:104;;;;21298:23;21336:16;21364:4;21370:3;21375:13;21285:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20718:678;;;;;;:::o;21402:237::-;21550:6;21513:9;:22;21523:11;21513:22;;;;;;;;;;;;;;;;;:34;;:43;;;;;;;21603:29;21619:12;21610:3;21603:15;;;;:29;;;;:::i;:::-;21566:9;:22;21576:11;21566:22;;;;;;;;;;;;;;;;;:34;;;:66;;;;;;;;;;;;;;;;;;21402:237;;;:::o;13454:1503::-;13652:14;14396:20;13615:11;3717:1;3683:9;:22;3693:11;3683:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:35;;;3675:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13669:6;13652:23;;13786:1;13776:7;:11;;;13768:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13845:8;13835:7;:18;;;13827:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;305:1;13911:26;;:10;:26;;;;13903:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14370:10;14356:24;;:10;:24;;;;14352:327;;;14419:24;:36;14444:10;14419:36;;;;;;;;;;;;;;;;14396:59;;14487:12;14477:6;:22;;14469:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14567:24;14578:12;14567:6;:10;;:24;;;;:::i;:::-;14558:33;;14629:39;14655:12;14629:9;:21;14639:10;14629:21;;;;;;;;;;;;;;;;:25;;:39;;;;:::i;:::-;14605:9;:21;14615:10;14605:21;;;;;;;;;;;;;;;:63;;;;14352:327;14727:12;14689:9;:22;14699:11;14689:22;;;;;;;;;;;;;;;;;:35;;:50;;;;;;;14785:10;14749:9;:22;14759:11;14749:22;;;;;;;;;;;;;;;;;:33;;;:46;;;;;;;;;;;;;;;;;;14841:10;14805:9;:22;14815:11;14805:22;;;;;;;;;;;;;;;;;:33;;;:46;;;;;;;;;;;;;;;;;;14894:7;14861:9;:22;14871:11;14861:22;;;;;;;;;;;;;;;;;:30;;;:40;;;;;;;;;;;;;;;;;;14943:6;14911:9;:22;14921:11;14911:22;;;;;;;;;;;;;;;;;:29;;:38;;;;13454:1503;;;;;;;;;:::o;16801:394::-;17019:25;690:1;16907:11;:26;16919:13;16907:26;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:63;;;16899:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;818:1;17047:57;;:9;:22;17057:11;17047:22;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:57;;;;;;;;;;17019:85;;17153:35;17169:18;17160:3;17153:15;;;;:35;;;;:::i;:::-;17114:11;:26;17126:13;17114:26;;;;;;;;;;;;;;;;;:36;;;:74;;;;;;;;;;;;;;;;;;16801:394;;;:::o;605:110:15:-;663:7;690:1;685;:6;;678:14;;;;;;709:1;705;:5;698:12;;605:110;;;;:::o;255:125:16:-;311:6;325:8;340:1;336;:5;325:16;;359:1;354:6;;:1;:6;;;;347:14;;;;;;374:1;367:8;;255:125;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport './RealitioSafeMath256.sol';\nimport './RealitioSafeMath32.sol';\nimport './BalanceHolderERC20.sol';\n\ncontract RealitioERC20 is BalanceHolder {\n\n    using RealitioSafeMath256 for uint256;\n    using RealitioSafeMath32 for uint32;\n\n    address constant NULL_ADDRESS = address(0);\n\n    // History hash when no history is created, or history has been cleared\n    bytes32 constant NULL_HASH = bytes32(0);\n\n    // An unitinalized finalize_ts for a question will indicate an unanswered question.\n    uint32 constant UNANSWERED = 0;\n\n    // An unanswered reveal_ts for a commitment will indicate that it does not exist.\n    uint256 constant COMMITMENT_NON_EXISTENT = 0;\n\n    // Commit->reveal timeout is 1/8 of the question timeout (rounded down).\n    uint32 constant COMMITMENT_TIMEOUT_RATIO = 8;\n\n    event LogSetQuestionFee(\n        address arbitrator,\n        uint256 amount\n    );\n\n    event LogNewTemplate(\n        uint256 indexed template_id,\n        address indexed user, \n        string question_text\n    );\n\n    event LogNewQuestion(\n        bytes32 indexed question_id,\n        address indexed user, \n        uint256 template_id,\n        string question,\n        bytes32 indexed content_hash,\n        address arbitrator, \n        uint32 timeout,\n        uint32 opening_ts,\n        uint256 nonce,\n        uint256 created\n    );\n\n    event LogFundAnswerBounty(\n        bytes32 indexed question_id,\n        uint256 bounty_added,\n        uint256 bounty,\n        address indexed user \n    );\n\n    event LogNewAnswer(\n        bytes32 answer,\n        bytes32 indexed question_id,\n        bytes32 history_hash,\n        address indexed user,\n        uint256 bond,\n        uint256 ts,\n        bool is_commitment\n    );\n\n    event LogAnswerReveal(\n        bytes32 indexed question_id, \n        address indexed user, \n        bytes32 indexed answer_hash, \n        bytes32 answer, \n        uint256 nonce, \n        uint256 bond\n    );\n\n    event LogNotifyOfArbitrationRequest(\n        bytes32 indexed question_id,\n        address indexed user \n    );\n\n    event LogFinalize(\n        bytes32 indexed question_id,\n        bytes32 indexed answer\n    );\n\n    event LogClaim(\n        bytes32 indexed question_id,\n        address indexed user,\n        uint256 amount\n    );\n\n    struct Question {\n        bytes32 content_hash;\n        address arbitrator;\n        uint32 opening_ts;\n        uint32 timeout;\n        uint32 finalize_ts;\n        bool is_pending_arbitration;\n        uint256 bounty;\n        bytes32 best_answer;\n        bytes32 history_hash;\n        uint256 bond;\n    }\n\n    // Stored in a mapping indexed by commitment_id, a hash of commitment hash, question, bond. \n    struct Commitment {\n        uint32 reveal_ts;\n        bool is_revealed;\n        bytes32 revealed_answer;\n    }\n\n    // Only used when claiming more bonds than fits into a transaction\n    // Stored in a mapping indexed by question_id.\n    struct Claim {\n        address payee;\n        uint256 last_bond;\n        uint256 queued_funds;\n    }\n\n    uint256 nextTemplateID = 0;\n    mapping(uint256 => uint256) public templates;\n    mapping(uint256 => bytes32) public template_hashes;\n    mapping(bytes32 => Question) public questions;\n    mapping(bytes32 => Claim) public question_claims;\n    mapping(bytes32 => Commitment) public commitments;\n    mapping(address => uint256) public arbitrator_question_fees; \n\n    modifier onlyArbitrator(bytes32 question_id) {\n        require(msg.sender == questions[question_id].arbitrator, \"msg.sender must be arbitrator\");\n        _;\n    }\n\n    modifier stateAny() {\n        _;\n    }\n\n    modifier stateNotCreated(bytes32 question_id) {\n        require(questions[question_id].timeout == 0, \"question must not exist\");\n        _;\n    }\n\n    modifier stateOpen(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        require(!questions[question_id].is_pending_arbitration, \"question must not be pending arbitration\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization deadline must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier statePendingArbitration(bytes32 question_id) {\n        require(questions[question_id].is_pending_arbitration, \"question must be pending arbitration\");\n        _;\n    }\n\n    modifier stateOpenOrPendingArbitration(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization dealine must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier stateFinalized(bytes32 question_id) {\n        require(isFinalized(question_id), \"question must be finalized\");\n        _;\n    }\n\n    modifier bondMustDouble(bytes32 question_id, uint256 tokens) {\n        require(tokens > 0, \"bond must be positive\"); \n        require(tokens >= (questions[question_id].bond.mul(2)), \"bond must be double at least previous bond\");\n        _;\n    }\n\n    modifier previousBondMustNotBeatMaxPrevious(bytes32 question_id, uint256 max_previous) {\n        if (max_previous > 0) {\n            require(questions[question_id].bond <= max_previous, \"bond must exceed max_previous\");\n        }\n        _;\n    }\n\n    function setToken(IERC20 _token) \n    public\n    {\n        require(token == IERC20(0x0), \"Token can only be initialized once\");\n        token = _token;\n    }\n\n    /// @notice Constructor, sets up some initial templates\n    /// @dev Creates some generalized templates for different question types used in the DApp.\n    constructor() \n    public {\n        createTemplate('{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}');\n    }\n\n    /// @notice Function for arbitrator to set an optional per-question fee. \n    /// @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n    /// @param fee The fee to be charged by the arbitrator when a question is asked\n    function setQuestionFee(uint256 fee) \n        stateAny() \n    external {\n        arbitrator_question_fees[msg.sender] = fee;\n        emit LogSetQuestionFee(msg.sender, fee);\n    }\n\n    /// @notice Create a reusable template, which should be a JSON document.\n    /// Placeholders should use gettext() syntax, eg %s.\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplate(string content) \n        stateAny()\n    public returns (uint256) {\n        uint256 id = nextTemplateID;\n        templates[id] = block.number;\n        template_hashes[id] = keccak256(abi.encodePacked(content));\n        emit LogNewTemplate(id, msg.sender, content);\n        nextTemplateID = id.add(1);\n        return id;\n    }\n\n    /// @notice Create a new reusable template and use it to ask a question\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplateAndAskQuestion(\n        string content, \n        string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce \n    ) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n        uint256 template_id = createTemplate(content);\n        return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce);\n    }\n\n    /// @notice Ask a new question without a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n    /// @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestion(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, 0);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    /// @notice Ask a new question with a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @param tokens The combined initial question bounty and question fee\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestionERC20(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 tokens) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        _deductTokensOrRevert(tokens);\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, tokens);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    function _deductTokensOrRevert(uint256 tokens) \n    internal {\n\n        if (tokens == 0) {\n            return;\n        }\n\n        uint256 bal = balanceOf[msg.sender];\n\n        // Deduct any tokens you have in your internal balance first\n        if (bal > 0) {\n            if (bal >= tokens) {\n                balanceOf[msg.sender] = bal.sub(tokens);\n                return;\n            } else {\n                tokens = tokens.sub(bal);\n                balanceOf[msg.sender] = 0;\n            }\n        }\n        // Now we need to charge the rest from \n        require(token.transferFrom(msg.sender, address(this), tokens), \"Transfer of tokens failed, insufficient approved balance?\");\n        return;\n\n    }\n\n    function _askQuestion(bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 tokens) \n        stateNotCreated(question_id)\n    internal {\n\n        uint256 bounty = tokens;\n\n        // A timeout of 0 makes no sense, and we will use this to check existence\n        require(timeout > 0, \"timeout must be positive\"); \n        require(timeout < 365 days, \"timeout must be less than 365 days\"); \n        require(arbitrator != NULL_ADDRESS, \"arbitrator must be set\");\n\n        // The arbitrator can set a fee for asking a question. \n        // This is intended as an anti-spam defence.\n        // The fee is waived if the arbitrator is asking the question.\n        // This allows them to set an impossibly high fee and make users proxy the question through them.\n        // This would allow more sophisticated pricing, question whitelisting etc.\n        if (msg.sender != arbitrator) {\n            uint256 question_fee = arbitrator_question_fees[arbitrator];\n            require(bounty >= question_fee, \"Tokens provided must cover question fee\"); \n            bounty = bounty.sub(question_fee);\n            balanceOf[arbitrator] = balanceOf[arbitrator].add(question_fee);\n        }\n\n        questions[question_id].content_hash = content_hash;\n        questions[question_id].arbitrator = arbitrator;\n        questions[question_id].opening_ts = opening_ts;\n        questions[question_id].timeout = timeout;\n        questions[question_id].bounty = bounty;\n\n    }\n\n    /// @notice Add funds to the bounty for a question\n    /// @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n    /// @param question_id The ID of the question you wish to fund\n    /// @param tokens The number of tokens to fund\n    function fundAnswerBountyERC20(bytes32 question_id, uint256 tokens) \n        stateOpen(question_id)\n    external {\n        _deductTokensOrRevert(tokens);\n        questions[question_id].bounty = questions[question_id].bounty.add(tokens);\n        emit LogFundAnswerBounty(question_id, tokens, questions[question_id].bounty, msg.sender);\n    }\n\n    /// @notice Submit an answer for a question.\n    /// @dev Adds the answer to the history and updates the current \"best\" answer.\n    /// May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param tokens The amount of tokens to submit\n    function submitAnswerERC20(bytes32 question_id, bytes32 answer, uint256 max_previous, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        _deductTokensOrRevert(tokens);\n        _addAnswerToHistory(question_id, answer, msg.sender, tokens, false);\n        _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n    }\n\n    // @notice Verify and store a commitment, including an appropriate timeout\n    // @param question_id The ID of the question to store\n    // @param commitment The ID of the commitment\n    function _storeCommitment(bytes32 question_id, bytes32 commitment_id) \n    internal\n    {\n        require(commitments[commitment_id].reveal_ts == COMMITMENT_NON_EXISTENT, \"commitment must not already exist\");\n\n        uint32 commitment_timeout = questions[question_id].timeout / COMMITMENT_TIMEOUT_RATIO;\n        commitments[commitment_id].reveal_ts = uint32(now).add(commitment_timeout);\n    }\n\n    /// @notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n    /// @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n    /// The commitment_id is stored in the answer history where the answer would normally go.\n    /// Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n    /// @param question_id The ID of the question\n    /// @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n    /// @param tokens Number of tokens sent\n    /// @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.\n    function submitAnswerCommitmentERC20(bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n\n        _deductTokensOrRevert(tokens);\n\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, tokens));\n        address answerer = (_answerer == NULL_ADDRESS) ? msg.sender : _answerer;\n\n        _storeCommitment(question_id, commitment_id);\n        _addAnswerToHistory(question_id, commitment_id, answerer, tokens, true);\n\n    }\n\n    /// @notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n    /// @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n    /// Updates the current answer unless someone has since supplied a new answer with a higher bond\n    /// msg.sender is intentionally not restricted to the user who originally sent the commitment; \n    /// For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n    /// NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded as bytes32\n    /// @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n    /// @param bond The bond that you paid in your submitAnswerCommitment() transaction\n    function submitAnswerReveal(bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) \n        stateOpenOrPendingArbitration(question_id)\n    external {\n\n        bytes32 answer_hash = keccak256(abi.encodePacked(answer, nonce));\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, bond));\n\n        require(!commitments[commitment_id].is_revealed, \"commitment must not have been revealed yet\");\n        require(commitments[commitment_id].reveal_ts > uint32(now), \"reveal deadline must not have passed\");\n\n        commitments[commitment_id].revealed_answer = answer;\n        commitments[commitment_id].is_revealed = true;\n\n        if (bond == questions[question_id].bond) {\n            _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n        }\n\n        emit LogAnswerReveal(question_id, msg.sender, answer_hash, answer, nonce, bond);\n\n    }\n\n    function _addAnswerToHistory(bytes32 question_id, bytes32 answer_or_commitment_id, address answerer, uint256 bond, bool is_commitment) \n    internal \n    {\n        bytes32 new_history_hash = keccak256(abi.encodePacked(questions[question_id].history_hash, answer_or_commitment_id, bond, answerer, is_commitment));\n\n        // Update the current bond level, if there's a bond (ie anything except arbitration)\n        if (bond > 0) {\n            questions[question_id].bond = bond;\n        }\n        questions[question_id].history_hash = new_history_hash;\n\n        emit LogNewAnswer(answer_or_commitment_id, question_id, new_history_hash, answerer, bond, now, is_commitment);\n    }\n\n    function _updateCurrentAnswer(bytes32 question_id, bytes32 answer, uint32 timeout_secs)\n    internal {\n        questions[question_id].best_answer = answer;\n        questions[question_id].finalize_ts = uint32(now).add(timeout_secs);\n    }\n\n    /// @notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n    /// @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n    /// @param question_id The ID of the question\n    /// @param requester The account that requested arbitration\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function notifyOfArbitrationRequest(bytes32 question_id, address requester, uint256 max_previous) \n        onlyArbitrator(question_id)\n        stateOpen(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        require(questions[question_id].bond > 0, \"Question must already have an answer when arbitration is requested\");\n        questions[question_id].is_pending_arbitration = true;\n        emit LogNotifyOfArbitrationRequest(question_id, requester);\n    }\n\n    /// @notice Submit the answer for a question, for use by the arbitrator.\n    /// @dev Doesn't require (or allow) a bond.\n    /// If the current final answer is correct, the account should be whoever submitted it.\n    /// If the current final answer is wrong, the account should be whoever paid for arbitration.\n    /// However, the answerer stipulations are not enforced by the contract.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param answerer The account credited with this answer for the purpose of bond claims\n    function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) \n        onlyArbitrator(question_id)\n        statePendingArbitration(question_id)\n    external {\n\n        require(answerer != NULL_ADDRESS, \"answerer must be provided\");\n        emit LogFinalize(question_id, answer);\n\n        questions[question_id].is_pending_arbitration = false;\n        _addAnswerToHistory(question_id, answer, answerer, 0, false);\n        _updateCurrentAnswer(question_id, answer, 0);\n\n    }\n\n    /// @notice Report whether the answer to the specified question is finalized\n    /// @param question_id The ID of the question\n    /// @return Return true if finalized\n    function isFinalized(bytes32 question_id) \n    view public returns (bool) {\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        return ( !questions[question_id].is_pending_arbitration && (finalize_ts > UNANSWERED) && (finalize_ts <= uint32(now)) );\n    }\n\n    /// @notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswer(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function resultFor(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n\n    /// @notice Return the final answer to the specified question, provided it matches the specified criteria.\n    /// @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n    /// @param question_id The ID of the question\n    /// @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n    /// @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n    /// @param min_timeout The timeout set in the initial question settings must be this high or higher\n    /// @param min_bond The bond sent with the final answer must be this high or higher\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswerIfMatches(\n        bytes32 question_id, \n        bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond\n    ) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        require(content_hash == questions[question_id].content_hash, \"content hash must match\");\n        require(arbitrator == questions[question_id].arbitrator, \"arbitrator must match\");\n        require(min_timeout <= questions[question_id].timeout, \"timeout must be long enough\");\n        require(min_bond <= questions[question_id].bond, \"bond must be high enough\");\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n    /// Caller must provide the answer history, in reverse order\n    /// @dev Works up the chain and assign bonds to the person who gave the right answer\n    /// If someone gave the winning answer earlier, they must get paid from the higher bond\n    /// That means we can't pay out the bond added at n until we have looked at n-1\n    /// The first answer is authenticated by checking against the stored history_hash.\n    /// One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n    /// Once we get to a null hash we'll know we're done and there are no more answers.\n    /// Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n    /// @param question_id The ID of the question\n    /// @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n    /// @param addrs Last-to-first, the address of each answerer or commitment sender\n    /// @param bonds Last-to-first, the bond supplied with each answer or commitment\n    /// @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal\n    function claimWinnings(\n        bytes32 question_id, \n        bytes32[] history_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateFinalized(question_id)\n    public {\n\n        require(history_hashes.length > 0, \"at least one history hash entry must be provided\");\n\n        // These are only set if we split our claim over multiple transactions.\n        address payee = question_claims[question_id].payee; \n        uint256 last_bond = question_claims[question_id].last_bond; \n        uint256 queued_funds = question_claims[question_id].queued_funds; \n\n        // Starts as the hash of the final answer submitted. It'll be cleared when we're done.\n        // If we're splitting the claim over multiple transactions, it'll be the hash where we left off last time\n        bytes32 last_history_hash = questions[question_id].history_hash;\n\n        bytes32 best_answer = questions[question_id].best_answer;\n\n        uint256 i;\n        for (i = 0; i < history_hashes.length; i++) {\n        \n            // Check input against the history hash, and see which of 2 possible values of is_commitment fits.\n            bool is_commitment = _verifyHistoryInputOrRevert(last_history_hash, history_hashes[i], answers[i], bonds[i], addrs[i]);\n            \n            queued_funds = queued_funds.add(last_bond); \n            (queued_funds, payee) = _processHistoryItem(\n                question_id, best_answer, queued_funds, payee, \n                addrs[i], bonds[i], answers[i], is_commitment);\n \n            // Line the bond up for next time, when it will be added to somebody's queued_funds\n            last_bond = bonds[i];\n            last_history_hash = history_hashes[i];\n\n        }\n \n        if (last_history_hash != NULL_HASH) {\n            // We haven't yet got to the null hash (1st answer), ie the caller didn't supply the full answer chain.\n            // Persist the details so we can pick up later where we left off later.\n\n            // If we know who to pay we can go ahead and pay them out, only keeping back last_bond\n            // (We always know who to pay unless all we saw were unrevealed commits)\n            if (payee != NULL_ADDRESS) {\n                _payPayee(question_id, payee, queued_funds);\n                queued_funds = 0;\n            }\n\n            question_claims[question_id].payee = payee;\n            question_claims[question_id].last_bond = last_bond;\n            question_claims[question_id].queued_funds = queued_funds;\n        } else {\n            // There is nothing left below us so the payee can keep what remains\n            _payPayee(question_id, payee, queued_funds.add(last_bond));\n            delete question_claims[question_id];\n        }\n\n        questions[question_id].history_hash = last_history_hash;\n\n    }\n\n    function _payPayee(bytes32 question_id, address payee, uint256 value) \n    internal {\n        balanceOf[payee] = balanceOf[payee].add(value);\n        emit LogClaim(question_id, payee, value);\n    }\n\n    function _verifyHistoryInputOrRevert(\n        bytes32 last_history_hash,\n        bytes32 history_hash, bytes32 answer, uint256 bond, address addr\n    )\n    internal pure returns (bool) {\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, true)) ) {\n            return true;\n        }\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, false)) ) {\n            return false;\n        } \n        revert(\"History input provided did not match the expected hash\");\n    }\n\n    function _processHistoryItem(\n        bytes32 question_id, bytes32 best_answer, \n        uint256 queued_funds, address payee, \n        address addr, uint256 bond, bytes32 answer, bool is_commitment\n    )\n    internal returns (uint256, address) {\n\n        // For commit-and-reveal, the answer history holds the commitment ID instead of the answer.\n        // We look at the referenced commitment ID and switch in the actual answer.\n        if (is_commitment) {\n            bytes32 commitment_id = answer;\n            // If it's a commit but it hasn't been revealed, it will always be considered wrong.\n            if (!commitments[commitment_id].is_revealed) {\n                delete commitments[commitment_id];\n                return (queued_funds, payee);\n            } else {\n                answer = commitments[commitment_id].revealed_answer;\n                delete commitments[commitment_id];\n            }\n        }\n\n        if (answer == best_answer) {\n\n            if (payee == NULL_ADDRESS) {\n\n                // The entry is for the first payee we come to, ie the winner.\n                // They get the question bounty.\n                payee = addr;\n                queued_funds = queued_funds.add(questions[question_id].bounty);\n                questions[question_id].bounty = 0;\n\n            } else if (addr != payee) {\n\n                // Answerer has changed, ie we found someone lower down who needs to be paid\n\n                // The lower answerer will take over receiving bonds from higher answerer.\n                // They should also be paid the takeover fee, which is set at a rate equivalent to their bond. \n                // (This is our arbitrary rule, to give consistent right-answerers a defence against high-rollers.)\n\n                // There should be enough for the fee, but if not, take what we have.\n                // There's an edge case involving weird arbitrator behaviour where we may be short.\n                uint256 answer_takeover_fee = (queued_funds >= bond) ? bond : queued_funds;\n\n                // Settle up with the old (higher-bonded) payee\n                _payPayee(question_id, payee, queued_funds.sub(answer_takeover_fee));\n\n                // Now start queued_funds again for the new (lower-bonded) payee\n                payee = addr;\n                queued_funds = answer_takeover_fee;\n\n            }\n\n        }\n\n        return (queued_funds, payee);\n\n    }\n\n    /// @notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n    /// Caller must provide the answer history for each question, in reverse order\n    /// @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n    /// @param question_ids The IDs of the questions you want to claim for\n    /// @param lengths The number of history entries you will supply for each question ID\n    /// @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n    /// @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n    /// @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n    /// @param answers In a single list for all supplied questions, each answer supplied, or commitment ID \n    function claimMultipleAndWithdrawBalance(\n        bytes32[] question_ids, uint256[] lengths, \n        bytes32[] hist_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateAny() // The finalization checks are done in the claimWinnings function\n    public {\n        \n        uint256 qi;\n        uint256 i;\n        for (qi = 0; qi < question_ids.length; qi++) {\n            bytes32 qid = question_ids[qi];\n            uint256 ln = lengths[qi];\n            bytes32[] memory hh = new bytes32[](ln);\n            address[] memory ad = new address[](ln);\n            uint256[] memory bo = new uint256[](ln);\n            bytes32[] memory an = new bytes32[](ln);\n            uint256 j;\n            for (j = 0; j < ln; j++) {\n                hh[j] = hist_hashes[i];\n                ad[j] = addrs[i];\n                bo[j] = bonds[i];\n                an[j] = answers[i];\n                i++;\n            }\n            claimWinnings(qid, hh, ad, bo, an);\n        }\n        withdraw();\n    }\n\n    /// @notice Returns the questions's content hash, identifying the question content\n    /// @param question_id The ID of the question \n    function getContentHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].content_hash;\n    }\n\n    /// @notice Returns the arbitrator address for the question\n    /// @param question_id The ID of the question \n    function getArbitrator(bytes32 question_id) \n    public view returns(address) {\n        return questions[question_id].arbitrator;\n    }\n\n    /// @notice Returns the timestamp when the question can first be answered\n    /// @param question_id The ID of the question \n    function getOpeningTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].opening_ts;\n    }\n\n    /// @notice Returns the timeout in seconds used after each answer\n    /// @param question_id The ID of the question \n    function getTimeout(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].timeout;\n    }\n\n    /// @notice Returns the timestamp at which the question will be/was finalized\n    /// @param question_id The ID of the question \n    function getFinalizeTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].finalize_ts;\n    }\n\n    /// @notice Returns whether the question is pending arbitration\n    /// @param question_id The ID of the question \n    function isPendingArbitration(bytes32 question_id) \n    public view returns(bool) {\n        return questions[question_id].is_pending_arbitration;\n    }\n\n    /// @notice Returns the current total unclaimed bounty\n    /// @dev Set back to zero once the bounty has been claimed\n    /// @param question_id The ID of the question \n    function getBounty(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bounty;\n    }\n\n    /// @notice Returns the current best answer\n    /// @param question_id The ID of the question \n    function getBestAnswer(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Returns the history hash of the question \n    /// @param question_id The ID of the question \n    /// @dev Updated on each answer, then rewound as each is claimed\n    function getHistoryHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].history_hash;\n    }\n\n    /// @notice Returns the highest bond posted so far for a question\n    /// @param question_id The ID of the question \n    function getBond(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bond;\n    }\n\n}\n",
  "sourcePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
  "ast": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
    "exportedSymbols": {
      "RealitioERC20": [
        6970
      ]
    },
    "id": 6971,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4767,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:14"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 4768,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 7069,
        "src": "26:35:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 4769,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 7096,
        "src": "62:34:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolderERC20.sol",
        "file": "./BalanceHolderERC20.sol",
        "id": 4770,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 485,
        "src": "97:34:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4771,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 484,
              "src": "159:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$484",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 4772,
            "nodeType": "InheritanceSpecifier",
            "src": "159:13:14"
          }
        ],
        "contractDependencies": [
          484
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6970,
        "linearizedBaseContracts": [
          6970,
          484
        ],
        "name": "RealitioERC20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4775,
            "libraryName": {
              "contractScope": null,
              "id": 4773,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7068,
              "src": "186:19:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$7068",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "180:38:14",
            "typeName": {
              "id": 4774,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "210:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 4778,
            "libraryName": {
              "contractScope": null,
              "id": 4776,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7095,
              "src": "229:18:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$7095",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "223:36:14",
            "typeName": {
              "id": 4777,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "252:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 4783,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "265:42:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4779,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4781,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "305:1:14",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4780,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "297:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 4782,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "297:10:14",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4788,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "390:39:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 4784,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "390:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4786,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "427:1:14",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4785,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "419:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 4787,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "419:10:14",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4791,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "524:30:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4789,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4790,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "553:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4794,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "647:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4792,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "647:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4793,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4797,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "775:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4795,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "775:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 4796,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "818:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4803,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4802,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4799,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4803,
                  "src": "859:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4798,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "859:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4801,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4803,
                  "src": "887:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4800,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "887:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:58:14"
            },
            "src": "826:82:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4811,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4805,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "944:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4804,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4807,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "981:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4806,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4809,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "1012:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4808,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:104:14"
            },
            "src": "914:125:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4833,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4813,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1075:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1075:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4815,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1112:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4814,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1112:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4817,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1143:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4816,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4819,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1172:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4818,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4821,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1197:28:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4820,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1197:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4823,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1235:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4822,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4825,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1264:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4824,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4827,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1288:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4826,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1288:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4829,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1315:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1315:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4831,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1338:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4830,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1065:294:14"
            },
            "src": "1045:315:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4843,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4835,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1401:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4834,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4837,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1438:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4836,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1438:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4839,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1468:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4838,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1468:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4841,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1492:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4840,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1492:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1391:128:14"
            },
            "src": "1366:154:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4859,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4845,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1554:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4847,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1578:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4846,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1578:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4849,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1615:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1615:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4851,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1645:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4850,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1645:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4853,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1675:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4852,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4855,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1697:10:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4854,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1697:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4857,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1717:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4856,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1717:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:197:14"
            },
            "src": "1526:216:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4873,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4872,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4861,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1779:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4860,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1779:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4863,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1817:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4862,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4865,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1848:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4864,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1848:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4867,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1886:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1886:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4869,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1911:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4868,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4871,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1935:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4870,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:184:14"
            },
            "src": "1748:206:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4879,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4875,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4879,
                  "src": "2005:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2005:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4877,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4879,
                  "src": "2042:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4876,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2042:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1995:74:14"
            },
            "src": "1960:110:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4885,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4881,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4885,
                  "src": "2103:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4883,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4885,
                  "src": "2140:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4882,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2140:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2093:75:14"
            },
            "src": "2076:93:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4893,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4892,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4887,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2199:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4886,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4889,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2236:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4888,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2236:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4891,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2266:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4890,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2189:97:14"
            },
            "src": "2175:112:14"
          },
          {
            "canonicalName": "RealitioERC20.Question",
            "id": 4914,
            "members": [
              {
                "constant": false,
                "id": 4895,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2319:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4894,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2319:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4897,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2349:18:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4896,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2349:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4899,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2377:17:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4898,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2377:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4901,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2404:14:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4900,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2404:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4903,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2428:18:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4902,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2428:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4905,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2456:27:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4904,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2456:4:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4907,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2493:14:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4906,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2493:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4909,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2517:19:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4908,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2517:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4911,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2546:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4910,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2546:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4913,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2576:12:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4912,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2293:302:14",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Commitment",
            "id": 4921,
            "members": [
              {
                "constant": false,
                "id": 4916,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2726:16:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4915,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2726:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4918,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2752:16:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4917,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2752:4:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4920,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2778:23:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4919,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2698:110:14",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Claim",
            "id": 4928,
            "members": [
              {
                "constant": false,
                "id": 4923,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "2959:13:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4922,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2959:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4925,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "2982:17:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4924,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2982:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4927,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "3009:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4926,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3009:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2936:100:14",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4931,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3042:26:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4929,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3042:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4930,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3067:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4935,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3074:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 4934,
              "keyType": {
                "id": 4932,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3082:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3074:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 4933,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3093:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4939,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3124:50:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 4938,
              "keyType": {
                "id": 4936,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3132:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3124:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 4937,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3143:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4943,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3180:45:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
            },
            "typeName": {
              "id": 4942,
              "keyType": {
                "id": 4940,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3188:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3180:28:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4941,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4914,
                "src": "3199:8:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$4914_storage_ptr",
                  "typeString": "struct RealitioERC20.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4947,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3231:48:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
            },
            "typeName": {
              "id": 4946,
              "keyType": {
                "id": 4944,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3239:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3231:25:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4945,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4928,
                "src": "3250:5:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$4928_storage_ptr",
                  "typeString": "struct RealitioERC20.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4951,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3285:49:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
            },
            "typeName": {
              "id": 4950,
              "keyType": {
                "id": 4948,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3293:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3285:30:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4949,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4921,
                "src": "3304:10:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$4921_storage_ptr",
                  "typeString": "struct RealitioERC20.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4955,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3340:59:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 4954,
              "keyType": {
                "id": 4952,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3348:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3340:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 4953,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3359:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4971,
              "nodeType": "Block",
              "src": "3452:117:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4960,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9703,
                            "src": "3470:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 4961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3470:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4962,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3484:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4964,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4963,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4957,
                              "src": "3494:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3484:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4965,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4897,
                          "src": "3484:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3470:47:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 4967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3519:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 4959,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3462:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3462:89:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4969,
                  "nodeType": "ExpressionStatement",
                  "src": "3462:89:14"
                },
                {
                  "id": 4970,
                  "nodeType": "PlaceholderStatement",
                  "src": "3561:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4972,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4957,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "3431:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4956,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3431:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3430:21:14"
            },
            "src": "3407:162:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4975,
              "nodeType": "Block",
              "src": "3595:18:14",
              "statements": [
                {
                  "id": 4974,
                  "nodeType": "PlaceholderStatement",
                  "src": "3605:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4976,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4973,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:2:14"
            },
            "src": "3575:38:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4991,
              "nodeType": "Block",
              "src": "3665:99:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4981,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3683:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4983,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4982,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4978,
                              "src": "3693:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3683:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4984,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "3683:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4985,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3717:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3683:35:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 4987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3720:25:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 4980,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3675:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3675:71:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4989,
                  "nodeType": "ExpressionStatement",
                  "src": "3675:71:14"
                },
                {
                  "id": 4990,
                  "nodeType": "PlaceholderStatement",
                  "src": "3756:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4992,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4978,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4992,
                  "src": "3644:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4977,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3644:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3643:21:14"
            },
            "src": "3619:145:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5056,
              "nodeType": "Block",
              "src": "3810:547:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5002,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4997,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3828:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4999,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4998,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4994,
                              "src": "3838:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3828:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5000,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "3828:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3861:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3828:34:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 5003,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3864:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4996,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3820:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3820:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5005,
                  "nodeType": "ExpressionStatement",
                  "src": "3820:66:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3904:46:14",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5007,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3905:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5009,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5008,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4994,
                              "src": "3915:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3905:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5010,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4905,
                          "src": "3905:45:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 5012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3952:42:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 5006,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3896:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3896:99:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5014,
                  "nodeType": "ExpressionStatement",
                  "src": "3896:99:14"
                },
                {
                  "assignments": [
                    5016
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5016,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5057,
                      "src": "4005:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5015,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4005:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5021,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5017,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4026:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5019,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5018,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4994,
                        "src": "4036:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4026:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5020,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "4026:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4005:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5023,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5016,
                            "src": "4078:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5024,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4791,
                            "src": "4093:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4078:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5026,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5016,
                            "src": "4107:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5028,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4128:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5027,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4121:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4121:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4107:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4078:54:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5032,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4134:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 5022,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4070:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4070:109:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5034,
                  "nodeType": "ExpressionStatement",
                  "src": "4070:109:14"
                },
                {
                  "assignments": [
                    5036
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5036,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5057,
                      "src": "4189:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5035,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4189:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5041,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5037,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4209:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5039,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5038,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4994,
                        "src": "4219:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4209:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5040,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "4209:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4189:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5051,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5043,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5036,
                            "src": "4260:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5044,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4274:1:14",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:15:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5050,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5046,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5036,
                            "src": "4279:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5048,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4300:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4293:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5049,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4293:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4279:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:44:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 5052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4306:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 5042,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4252:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5054,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:86:14"
                },
                {
                  "id": 5055,
                  "nodeType": "PlaceholderStatement",
                  "src": "4349:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5057,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4994,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5057,
                  "src": "3789:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3789:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3788:21:14"
            },
            "src": "3770:587:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5070,
              "nodeType": "Block",
              "src": "4417:122:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5062,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "4435:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5064,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5063,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5059,
                            "src": "4445:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4435:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5065,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4905,
                        "src": "4435:45:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 5066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4482:38:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 5061,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4427:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4427:94:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5068,
                  "nodeType": "ExpressionStatement",
                  "src": "4427:94:14"
                },
                {
                  "id": 5069,
                  "nodeType": "PlaceholderStatement",
                  "src": "4531:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5071,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5059,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5071,
                  "src": "4396:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5058,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4396:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4395:21:14"
            },
            "src": "4363:176:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5126,
              "nodeType": "Block",
              "src": "4605:437:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5076,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "4623:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5078,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5077,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5073,
                              "src": "4633:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4623:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5079,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "4623:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5080,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4656:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4623:34:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 5082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4659:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 5075,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4615:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4615:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5084,
                  "nodeType": "ExpressionStatement",
                  "src": "4615:66:14"
                },
                {
                  "assignments": [
                    5086
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5086,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5127,
                      "src": "4691:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5085,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5091,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5087,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4712:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5089,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5088,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5073,
                        "src": "4722:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4712:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5090,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "4712:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5095,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5093,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5086,
                            "src": "4764:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5094,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4791,
                            "src": "4779:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4764:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5096,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5086,
                            "src": "4793:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5098,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4814:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5097,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4807:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4807:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4793:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4764:54:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4820:43:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 5092,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4756:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4756:108:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5104,
                  "nodeType": "ExpressionStatement",
                  "src": "4756:108:14"
                },
                {
                  "assignments": [
                    5106
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5106,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5127,
                      "src": "4874:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5105,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4874:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5111,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5107,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4894:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5109,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5108,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5073,
                        "src": "4904:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4894:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5110,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "4894:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4874:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5113,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5106,
                            "src": "4945:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5114,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4959:1:14",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4945:15:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5116,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5106,
                            "src": "4964:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5118,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4985:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5117,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4978:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4978:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4964:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4945:44:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 5122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4991:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 5112,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4937:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4937:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5124,
                  "nodeType": "ExpressionStatement",
                  "src": "4937:86:14"
                },
                {
                  "id": 5125,
                  "nodeType": "PlaceholderStatement",
                  "src": "5034:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5127,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5073,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5127,
                  "src": "4584:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5072,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4584:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4583:21:14"
            },
            "src": "4545:497:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5139,
              "nodeType": "Block",
              "src": "5093:91:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5133,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5129,
                            "src": "5123:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 5132,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6180,
                          "src": "5111:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 5134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5111:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 5135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5137:28:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 5131,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5103:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5103:63:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5137,
                  "nodeType": "ExpressionStatement",
                  "src": "5103:63:14"
                },
                {
                  "id": 5138,
                  "nodeType": "PlaceholderStatement",
                  "src": "5176:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5140,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5129,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5140,
                  "src": "5072:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5072:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5071:21:14"
            },
            "src": "5048:136:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5168,
              "nodeType": "Block",
              "src": "5251:184:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5147,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5144,
                          "src": "5269:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5278:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5269:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 5150,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5281:23:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 5146,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5261:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5261:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5152,
                  "nodeType": "ExpressionStatement",
                  "src": "5261:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5163,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5154,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5144,
                          "src": "5324:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 5160,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5367:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 5155,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4943,
                                      "src": "5335:9:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 5157,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5156,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5142,
                                      "src": "5345:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5335:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4914_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 5158,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4913,
                                  "src": "5335:27:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5159,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7005,
                                "src": "5335:31:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 5161,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5335:34:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 5162,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5334:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5324:46:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 5164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5372:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 5153,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5316:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5316:101:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5166,
                  "nodeType": "ExpressionStatement",
                  "src": "5316:101:14"
                },
                {
                  "id": 5167,
                  "nodeType": "PlaceholderStatement",
                  "src": "5427:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5169,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5142,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5169,
                  "src": "5214:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5141,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5214:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5144,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5169,
                  "src": "5235:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5143,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5213:37:14"
            },
            "src": "5190:245:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5191,
              "nodeType": "Block",
              "src": "5528:159:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5175,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5173,
                      "src": "5542:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5557:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5542:16:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5189,
                  "nodeType": "IfStatement",
                  "src": "5538:132:14",
                  "trueBody": {
                    "id": 5188,
                    "nodeType": "Block",
                    "src": "5560:110:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5184,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5179,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4943,
                                    "src": "5582:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                    }
                                  },
                                  "id": 5181,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 5180,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5171,
                                    "src": "5592:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5582:22:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$4914_storage",
                                    "typeString": "struct RealitioERC20.Question storage ref"
                                  }
                                },
                                "id": 5182,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4913,
                                "src": "5582:27:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5183,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5173,
                                "src": "5613:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5582:43:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 5185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5627:31:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 5178,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "5574:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5574:85:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5187,
                        "nodeType": "ExpressionStatement",
                        "src": "5574:85:14"
                      }
                    ]
                  }
                },
                {
                  "id": 5190,
                  "nodeType": "PlaceholderStatement",
                  "src": "5679:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5192,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5171,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "5485:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5170,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5485:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5173,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "5506:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5172,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5506:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5484:43:14"
            },
            "src": "5441:246:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5210,
              "nodeType": "Block",
              "src": "5742:108:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        },
                        "id": 5202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5198,
                          "name": "token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 440,
                          "src": "5760:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1352",
                            "typeString": "contract IERC20"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 5200,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5776:3:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5199,
                            "name": "IERC20",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1352,
                            "src": "5769:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IERC20_$1352_$",
                              "typeString": "type(contract IERC20)"
                            }
                          },
                          "id": 5201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5769:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1352",
                            "typeString": "contract IERC20"
                          }
                        },
                        "src": "5760:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
                        "id": 5203,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5782:36:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        },
                        "value": "Token can only be initialized once"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        }
                      ],
                      "id": 5197,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5752:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5752:67:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5205,
                  "nodeType": "ExpressionStatement",
                  "src": "5752:67:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5206,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 440,
                      "src": "5829:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1352",
                        "typeString": "contract IERC20"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5207,
                      "name": "_token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5194,
                      "src": "5837:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1352",
                        "typeString": "contract IERC20"
                      }
                    },
                    "src": "5829:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "id": 5209,
                  "nodeType": "ExpressionStatement",
                  "src": "5829:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 5211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 5211,
                  "src": "5711:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1352",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5193,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1352,
                    "src": "5711:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5710:15:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5742:0:14"
            },
            "scope": 6970,
            "src": "5693:157:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5234,
              "nodeType": "Block",
              "src": "6037:538:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6062:65:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5214,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6047:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6047:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5217,
                  "nodeType": "ExpressionStatement",
                  "src": "6047:81:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6153:81:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5218,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6138:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6138:97:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5221,
                  "nodeType": "ExpressionStatement",
                  "src": "6138:97:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6260:92:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5222,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6245:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6245:108:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5225,
                  "nodeType": "ExpressionStatement",
                  "src": "6245:108:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5227,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6378:94:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5226,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6363:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6363:110:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5229,
                  "nodeType": "ExpressionStatement",
                  "src": "6363:110:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6498:69:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5230,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6483:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6483:85:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5233,
                  "nodeType": "ExpressionStatement",
                  "src": "6483:85:14"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 5235,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5212,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6022:2:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5213,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6037:0:14"
            },
            "scope": 6970,
            "src": "6011:564:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5255,
              "nodeType": "Block",
              "src": "6920:108:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5242,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4955,
                        "src": "6930:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 5245,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5243,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "6955:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5244,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6955:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6930:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5246,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5237,
                      "src": "6969:3:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6930:42:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5248,
                  "nodeType": "ExpressionStatement",
                  "src": "6930:42:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5250,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "7005:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7005:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5252,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5237,
                        "src": "7017:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5249,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4803,
                      "src": "6987:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6987:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5254,
                  "nodeType": "EmitStatement",
                  "src": "6982:39:14"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 5256,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5240,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5239,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "6895:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6895:10:14"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5237,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 5256,
                  "src": "6873:11:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5236,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:13:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6920:0:14"
            },
            "scope": 6970,
            "src": "6849:179:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5303,
              "nodeType": "Block",
              "src": "7497:259:14",
              "statements": [
                {
                  "assignments": [
                    5266
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5266,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5304,
                      "src": "7507:10:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5265,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7507:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5268,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5267,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4931,
                    "src": "7520:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7507:27:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5274,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5269,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4935,
                        "src": "7544:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5271,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5270,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7554:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7544:13:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5272,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9693,
                        "src": "7560:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 5273,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7560:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7544:28:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5275,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:28:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5285,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5276,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4939,
                        "src": "7582:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 5278,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5277,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7598:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7582:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5282,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5258,
                              "src": "7631:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5280,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "7614:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 5281,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7614:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 5283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7614:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 5279,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "7604:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 5284,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7604:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7582:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5286,
                  "nodeType": "ExpressionStatement",
                  "src": "7582:58:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5288,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7670:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5289,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "7674:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7674:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5291,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5258,
                        "src": "7686:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5287,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4811,
                      "src": "7655:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 5292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7655:39:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5293,
                  "nodeType": "EmitStatement",
                  "src": "7650:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5294,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4931,
                      "src": "7704:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7728:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 5295,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5266,
                          "src": "7721:2:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "7721:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7721:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7704:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5300,
                  "nodeType": "ExpressionStatement",
                  "src": "7704:26:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5301,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5266,
                    "src": "7747:2:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5264,
                  "id": 5302,
                  "nodeType": "Return",
                  "src": "7740:9:14"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5304,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5261,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5260,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "7457:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7457:10:14"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5258,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5304,
                  "src": "7432:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5257,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7432:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7431:16:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5263,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5304,
                  "src": "7488:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7488:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7487:9:14"
            },
            "scope": 6970,
            "src": "7408:348:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5336,
              "nodeType": "Block",
              "src": "8893:153:14",
              "statements": [
                {
                  "assignments": [
                    5322
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5322,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5337,
                      "src": "8903:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5321,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8903:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5326,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5324,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5306,
                        "src": "8940:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5323,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "8925:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8925:23:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8903:45:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5328,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5322,
                        "src": "8977:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5329,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5308,
                        "src": "8990:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5330,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5310,
                        "src": "9000:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5331,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5312,
                        "src": "9012:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5332,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5314,
                        "src": "9021:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5333,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5316,
                        "src": "9033:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5327,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5414,
                      "src": "8965:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 5334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8965:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5320,
                  "id": 5335,
                  "nodeType": "Return",
                  "src": "8958:81:14"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5337,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5306,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8677:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5305,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8677:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5308,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8702:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5307,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8702:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5310,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8719:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5309,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8719:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5312,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8739:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5311,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8739:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5314,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8755:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5313,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8755:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5316,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8774:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5315,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8774:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8667:127:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5319,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8884:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5318,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8884:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8883:9:14"
            },
            "scope": 6970,
            "src": "8630:416:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5413,
              "nodeType": "Block",
              "src": "10398:536:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5355,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4935,
                            "src": "10417:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5357,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5356,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5339,
                            "src": "10427:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10417:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5358,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10442:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10417:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10445:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5354,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "10409:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10409:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5362,
                  "nodeType": "ExpressionStatement",
                  "src": "10409:58:14"
                },
                {
                  "assignments": [
                    5364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5364,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5414,
                      "src": "10478:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5363,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10478:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5373,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5368,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5339,
                            "src": "10528:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5369,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5347,
                            "src": "10541:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5370,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5341,
                            "src": "10553:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5366,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "10511:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10511:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10511:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5365,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "10501:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10501:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10478:85:14"
                },
                {
                  "assignments": [
                    5375
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5375,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5414,
                      "src": "10573:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5374,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10573:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5387,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5379,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5364,
                            "src": "10622:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5380,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5343,
                            "src": "10636:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5381,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5345,
                            "src": "10648:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5382,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "10657:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5383,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10657:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5384,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5349,
                            "src": "10669:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5377,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "10605:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10605:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10605:70:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5376,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "10595:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10573:103:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5389,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5375,
                        "src": "10700:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5390,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5364,
                        "src": "10713:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5391,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5343,
                        "src": "10727:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5392,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5345,
                        "src": "10739:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5393,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5347,
                        "src": "10748:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10760:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5388,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5682,
                      "src": "10687:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10687:75:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5396,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:75:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5398,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5375,
                        "src": "10792:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5399,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "10805:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5400,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10805:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5401,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5339,
                        "src": "10817:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5402,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5341,
                        "src": "10830:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5403,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5364,
                        "src": "10840:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5404,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5343,
                        "src": "10854:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5405,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5345,
                        "src": "10866:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5406,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5347,
                        "src": "10875:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5407,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5349,
                        "src": "10887:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5408,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "10894:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5397,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4833,
                      "src": "10777:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10777:121:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5410,
                  "nodeType": "EmitStatement",
                  "src": "10772:126:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5411,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5375,
                    "src": "10916:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5353,
                  "id": 5412,
                  "nodeType": "Return",
                  "src": "10909:18:14"
                }
              ]
            },
            "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 5414,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5339,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10192:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10192:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5341,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10213:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5340,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "10213:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5343,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10230:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5342,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10230:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5345,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10250:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5344,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10250:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5347,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10266:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5346,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10266:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5349,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10285:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5348,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10285:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10191:108:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5353,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5352,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10389:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5351,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10389:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10388:9:14"
            },
            "scope": 6970,
            "src": "10171:763:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5496,
              "nodeType": "Block",
              "src": "12154:581:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5434,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5428,
                        "src": "12187:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5433,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "12165:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12165:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5436,
                  "nodeType": "ExpressionStatement",
                  "src": "12165:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5442,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5438,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4935,
                            "src": "12213:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5440,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5439,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5416,
                            "src": "12223:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12213:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12238:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12213:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12241:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5437,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "12205:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12205:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5445,
                  "nodeType": "ExpressionStatement",
                  "src": "12205:58:14"
                },
                {
                  "assignments": [
                    5447
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5447,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5497,
                      "src": "12274:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5446,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12274:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5456,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5451,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5416,
                            "src": "12324:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5452,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5424,
                            "src": "12337:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5453,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5418,
                            "src": "12349:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5449,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "12307:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12307:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12307:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5448,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "12297:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12297:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12274:85:14"
                },
                {
                  "assignments": [
                    5458
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5458,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5497,
                      "src": "12369:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5457,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12369:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5470,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5462,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5447,
                            "src": "12418:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5463,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5420,
                            "src": "12432:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5464,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5422,
                            "src": "12444:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5465,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "12453:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5466,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12453:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5467,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5426,
                            "src": "12465:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5460,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "12401:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5461,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12401:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5468,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12401:70:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5459,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "12391:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12391:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12369:103:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5472,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5458,
                        "src": "12496:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5473,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5447,
                        "src": "12509:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5474,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5420,
                        "src": "12523:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5475,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5422,
                        "src": "12535:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5476,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5424,
                        "src": "12544:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5477,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5428,
                        "src": "12556:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5471,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5682,
                      "src": "12483:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12483:80:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5479,
                  "nodeType": "ExpressionStatement",
                  "src": "12483:80:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5481,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5458,
                        "src": "12593:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5482,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "12606:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12606:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5484,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5416,
                        "src": "12618:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5485,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5418,
                        "src": "12631:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5486,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5447,
                        "src": "12641:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5487,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5420,
                        "src": "12655:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5488,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5422,
                        "src": "12667:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5489,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5424,
                        "src": "12676:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5490,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5426,
                        "src": "12688:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5491,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "12695:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5480,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4833,
                      "src": "12578:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12578:121:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5493,
                  "nodeType": "EmitStatement",
                  "src": "12573:126:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5494,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5458,
                    "src": "12717:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5432,
                  "id": 5495,
                  "nodeType": "Return",
                  "src": "12710:18:14"
                }
              ]
            },
            "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
            "id": 5497,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestionERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5416,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11932:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5415,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11932:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5418,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11953:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5417,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11953:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5420,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11970:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5419,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11970:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5422,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11990:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5421,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11990:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5424,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12006:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5423,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12006:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5426,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12025:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5425,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12025:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5428,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12040:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5427,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12040:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11931:124:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5431,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12145:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5430,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12145:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12144:9:14"
            },
            "scope": 6970,
            "src": "11906:829:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5565,
              "nodeType": "Block",
              "src": "12802:646:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5502,
                      "name": "tokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5499,
                      "src": "12817:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5503,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12827:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12817:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5507,
                  "nodeType": "IfStatement",
                  "src": "12813:48:14",
                  "trueBody": {
                    "id": 5506,
                    "nodeType": "Block",
                    "src": "12830:31:14",
                    "statements": [
                      {
                        "expression": null,
                        "functionReturnParameters": 5501,
                        "id": 5505,
                        "nodeType": "Return",
                        "src": "12844:7:14"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    5509
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5509,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 5566,
                      "src": "12871:11:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5508,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12871:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5514,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5510,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "12885:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 5513,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5511,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "12895:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5512,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12895:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12885:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12871:35:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5515,
                      "name": "bal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5509,
                      "src": "12990:3:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12996:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12990:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5550,
                  "nodeType": "IfStatement",
                  "src": "12986:258:14",
                  "trueBody": {
                    "id": 5549,
                    "nodeType": "Block",
                    "src": "12999:245:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5518,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5509,
                            "src": "13017:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5519,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5499,
                            "src": "13024:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13017:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 5547,
                          "nodeType": "Block",
                          "src": "13134:100:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5538,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 5533,
                                  "name": "tokens",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5499,
                                  "src": "13152:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5536,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5509,
                                      "src": "13172:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5534,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5499,
                                      "src": "13161:6:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5535,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7043,
                                    "src": "13161:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5537,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13161:15:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13152:24:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5539,
                              "nodeType": "ExpressionStatement",
                              "src": "13152:24:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5545,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5540,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 444,
                                    "src": "13194:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5543,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5541,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9703,
                                      "src": "13204:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5542,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13204:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13194:21:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5544,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13218:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13194:25:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5546,
                              "nodeType": "ExpressionStatement",
                              "src": "13194:25:14"
                            }
                          ]
                        },
                        "id": 5548,
                        "nodeType": "IfStatement",
                        "src": "13013:221:14",
                        "trueBody": {
                          "id": 5532,
                          "nodeType": "Block",
                          "src": "13032:96:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5529,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5521,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 444,
                                    "src": "13050:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5524,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5522,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9703,
                                      "src": "13060:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5523,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13060:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13050:21:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5527,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5499,
                                      "src": "13082:6:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5525,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5509,
                                      "src": "13074:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5526,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7043,
                                    "src": "13074:7:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5528,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13074:15:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13050:39:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5530,
                              "nodeType": "ExpressionStatement",
                              "src": "13050:39:14"
                            },
                            {
                              "expression": null,
                              "functionReturnParameters": 5501,
                              "id": 5531,
                              "nodeType": "Return",
                              "src": "13107:7:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5554,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "13328:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13328:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5557,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9752,
                                "src": "13348:4:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6970",
                                  "typeString": "contract RealitioERC20"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6970",
                                  "typeString": "contract RealitioERC20"
                                }
                              ],
                              "id": 5556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13340:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 5558,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13340:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5559,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5499,
                            "src": "13355:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5552,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 440,
                            "src": "13309:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          },
                          "id": 5553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1335,
                          "src": "13309:18:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 5560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13309:53:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
                        "id": 5561,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13364:59:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        },
                        "value": "Transfer of tokens failed, insufficient approved balance?"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        }
                      ],
                      "id": 5551,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13301:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13301:123:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5563,
                  "nodeType": "ExpressionStatement",
                  "src": "13301:123:14"
                },
                {
                  "expression": null,
                  "functionReturnParameters": 5501,
                  "id": 5564,
                  "nodeType": "Return",
                  "src": "13434:7:14"
                }
              ]
            },
            "documentation": null,
            "id": 5566,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_deductTokensOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5499,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5566,
                  "src": "12772:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12772:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12771:16:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5501,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12802:0:14"
            },
            "scope": 6970,
            "src": "12741:707:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5681,
              "nodeType": "Block",
              "src": "13641:1316:14",
              "statements": [
                {
                  "assignments": [
                    5585
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5585,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 5682,
                      "src": "13652:14:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5584,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5587,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5586,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "13669:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13652:23:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5589,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5574,
                          "src": "13776:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13786:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "13776:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 5592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13789:26:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 5588,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13768:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13768:48:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5594,
                  "nodeType": "ExpressionStatement",
                  "src": "13768:48:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5596,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5574,
                          "src": "13835:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 5597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13845:8:14",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "13835:18:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 5599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13855:36:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 5595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13827:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13827:65:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5601,
                  "nodeType": "ExpressionStatement",
                  "src": "13827:65:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5603,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5572,
                          "src": "13911:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5604,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4783,
                          "src": "13925:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "13911:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 5606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13939:24:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 5602,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13903:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13903:61:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5608,
                  "nodeType": "ExpressionStatement",
                  "src": "13903:61:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5609,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "14356:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14356:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5611,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5572,
                      "src": "14370:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14356:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5645,
                  "nodeType": "IfStatement",
                  "src": "14352:327:14",
                  "trueBody": {
                    "id": 5644,
                    "nodeType": "Block",
                    "src": "14382:297:14",
                    "statements": [
                      {
                        "assignments": [
                          5614
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5614,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 5682,
                            "src": "14396:20:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5613,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "14396:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5618,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5615,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4955,
                            "src": "14419:24:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 5617,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5616,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5572,
                            "src": "14444:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14419:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14396:59:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5622,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 5620,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5585,
                                "src": "14477:6:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5621,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14487:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "14477:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546f6b656e732070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 5623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14501:41:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              },
                              "value": "Tokens provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              }
                            ],
                            "id": 5619,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "14469:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14469:74:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5625,
                        "nodeType": "ExpressionStatement",
                        "src": "14469:74:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5631,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 5626,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5585,
                            "src": "14558:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5629,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14578:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 5627,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5585,
                                "src": "14567:6:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5628,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7043,
                              "src": "14567:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5630,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14567:24:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14558:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5632,
                        "nodeType": "ExpressionStatement",
                        "src": "14558:33:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5633,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 444,
                              "src": "14605:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 5635,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5634,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5572,
                              "src": "14615:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14605:21:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5640,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14655:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5636,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 444,
                                  "src": "14629:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 5638,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5637,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5572,
                                  "src": "14639:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "14629:21:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5639,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7067,
                              "src": "14629:25:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5641,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14629:39:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14605:63:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5643,
                        "nodeType": "ExpressionStatement",
                        "src": "14605:63:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5646,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14689:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5648,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5647,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14699:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14689:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5649,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4895,
                      "src": "14689:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5650,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5570,
                      "src": "14727:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14689:50:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5652,
                  "nodeType": "ExpressionStatement",
                  "src": "14689:50:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5653,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14749:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5655,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5654,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14759:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14749:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4897,
                      "src": "14749:33:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5657,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5572,
                      "src": "14785:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14749:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5659,
                  "nodeType": "ExpressionStatement",
                  "src": "14749:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5660,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14805:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5662,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5661,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14815:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14805:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5663,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4899,
                      "src": "14805:33:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5664,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5576,
                      "src": "14841:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14805:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5666,
                  "nodeType": "ExpressionStatement",
                  "src": "14805:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5667,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14861:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5669,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5668,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14871:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14861:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5670,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4901,
                      "src": "14861:30:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5671,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5574,
                      "src": "14894:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14861:40:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5673,
                  "nodeType": "ExpressionStatement",
                  "src": "14861:40:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5679,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5674,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14911:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5676,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5675,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14921:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14911:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5677,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4907,
                      "src": "14911:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5678,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5585,
                      "src": "14943:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14911:38:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5680,
                  "nodeType": "ExpressionStatement",
                  "src": "14911:38:14"
                }
              ]
            },
            "documentation": null,
            "id": 5682,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5581,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5568,
                    "src": "13615:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5582,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5580,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4992,
                  "src": "13599:15:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13599:28:14"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5568,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13476:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5567,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13476:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5570,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13497:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5569,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13497:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5572,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13519:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5571,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13519:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5574,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13539:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5573,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13539:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5576,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13555:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5575,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13555:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5578,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13574:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13574:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13475:114:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5583,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13641:0:14"
            },
            "scope": 6970,
            "src": "13454:1503:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5720,
              "nodeType": "Block",
              "src": "15370:227:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5693,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5686,
                        "src": "15402:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5692,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "15380:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15380:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5695,
                  "nodeType": "ExpressionStatement",
                  "src": "15380:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5696,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "15419:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5698,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5697,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5684,
                          "src": "15429:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15419:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5699,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4907,
                      "src": "15419:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5705,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5686,
                          "src": "15485:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5700,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "15451:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5702,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5701,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5684,
                              "src": "15461:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15451:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5703,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4907,
                          "src": "15451:29:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "15451:33:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15451:41:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15419:73:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5708,
                  "nodeType": "ExpressionStatement",
                  "src": "15419:73:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5710,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5684,
                        "src": "15527:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5711,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5686,
                        "src": "15540:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5712,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "15548:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5714,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5713,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5684,
                            "src": "15558:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "15548:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5715,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4907,
                        "src": "15548:29:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5716,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "15579:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15579:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5709,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4843,
                      "src": "15507:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 5718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15507:83:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5719,
                  "nodeType": "EmitStatement",
                  "src": "15502:88:14"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
            "id": 5721,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5689,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5684,
                    "src": "15344:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5690,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5688,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "15334:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15334:22:14"
              }
            ],
            "name": "fundAnswerBountyERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5684,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5721,
                  "src": "15288:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5683,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15288:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5686,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5721,
                  "src": "15309:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15309:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15287:37:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5691,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15370:0:14"
            },
            "scope": 6970,
            "src": "15257:340:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5765,
              "nodeType": "Block",
              "src": "16402:206:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5744,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5729,
                        "src": "16434:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5743,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "16412:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16412:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5746,
                  "nodeType": "ExpressionStatement",
                  "src": "16412:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5748,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5723,
                        "src": "16471:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5749,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5725,
                        "src": "16484:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5750,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "16492:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5751,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16492:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5752,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5729,
                        "src": "16504:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16512:5:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5747,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "16451:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5754,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16451:67:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5755,
                  "nodeType": "ExpressionStatement",
                  "src": "16451:67:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5757,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5723,
                        "src": "16549:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5758,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5725,
                        "src": "16562:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5759,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "16570:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5761,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5760,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5723,
                            "src": "16580:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16570:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5762,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4901,
                        "src": "16570:30:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 5756,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6055,
                      "src": "16528:20:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16528:73:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5764,
                  "nodeType": "ExpressionStatement",
                  "src": "16528:73:14"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
            "id": 5766,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5732,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16262:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5733,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5731,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "16252:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16252:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5735,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16298:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5736,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5729,
                    "src": "16311:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5737,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5734,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5169,
                  "src": "16283:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16283:35:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5739,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16362:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5740,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5727,
                    "src": "16375:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5741,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5738,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "16327:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16327:61:14"
              }
            ],
            "name": "submitAnswerERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5723,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16168:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16168:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5725,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16189:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5724,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16189:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5727,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16205:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5726,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16205:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5729,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16227:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5728,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16227:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16167:75:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5742,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16402:0:14"
            },
            "scope": 6970,
            "src": "16141:467:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5804,
              "nodeType": "Block",
              "src": "16889:306:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5779,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5774,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "16907:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5776,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5775,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5770,
                              "src": "16919:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16907:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5777,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4916,
                          "src": "16907:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5778,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4794,
                          "src": "16947:23:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16907:63:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 5780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16972:35:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 5773,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "16899:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5781,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16899:109:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5782,
                  "nodeType": "ExpressionStatement",
                  "src": "16899:109:14"
                },
                {
                  "assignments": [
                    5784
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5784,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 5805,
                      "src": "17019:25:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5783,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17019:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5791,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 5790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5785,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "17047:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5787,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5786,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5768,
                          "src": "17057:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17047:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5788,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4901,
                      "src": "17047:30:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5789,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4797,
                      "src": "17080:24:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17047:57:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17019:85:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5792,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "17114:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5794,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5793,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5770,
                          "src": "17126:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17114:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5795,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4916,
                      "src": "17114:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5800,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5784,
                          "src": "17169:18:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5797,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "17160:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "17153:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17153:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7094,
                        "src": "17153:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17153:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17114:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5803,
                  "nodeType": "ExpressionStatement",
                  "src": "17114:74:14"
                }
              ]
            },
            "documentation": null,
            "id": 5805,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_storeCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5768,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "16827:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16827:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5770,
                  "name": "commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "16848:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5769,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16848:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16826:44:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16889:0:14"
            },
            "scope": 6970,
            "src": "16801:394:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5868,
              "nodeType": "Block",
              "src": "18471:361:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5830,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5815,
                        "src": "18504:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5829,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "18482:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18482:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5832,
                  "nodeType": "ExpressionStatement",
                  "src": "18482:29:14"
                },
                {
                  "assignments": [
                    5834
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5834,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5869,
                      "src": "18522:21:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5833,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "18522:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5843,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5838,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5807,
                            "src": "18573:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5839,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5809,
                            "src": "18586:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5840,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5815,
                            "src": "18599:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5836,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "18556:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18556:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18556:50:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5835,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "18546:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18546:61:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18522:85:14"
                },
                {
                  "assignments": [
                    5845
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5845,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 5869,
                      "src": "18617:16:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5844,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "18617:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5854,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5846,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5813,
                            "src": "18637:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "18650:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "18637:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 5849,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "18636:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 5852,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5813,
                      "src": "18679:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "18636:52:14",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5850,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "18666:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18666:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18617:71:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5856,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5807,
                        "src": "18716:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5857,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5834,
                        "src": "18729:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5855,
                      "name": "_storeCommitment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5805,
                      "src": "18699:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18699:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5859,
                  "nodeType": "ExpressionStatement",
                  "src": "18699:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5861,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5807,
                        "src": "18773:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5862,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5834,
                        "src": "18786:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5863,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5845,
                        "src": "18801:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5864,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5815,
                        "src": "18811:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 5865,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18819:4:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5860,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "18753:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18753:71:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5867,
                  "nodeType": "ExpressionStatement",
                  "src": "18753:71:14"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 5869,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5818,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18331:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5819,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5817,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "18321:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18321:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5821,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18367:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5822,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5815,
                    "src": "18380:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5823,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5820,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5169,
                  "src": "18352:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18352:35:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5825,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18431:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5826,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5811,
                    "src": "18444:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5827,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5824,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "18396:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18396:61:14"
              }
            ],
            "name": "submitAnswerCommitmentERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5807,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18213:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18213:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5809,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18234:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18234:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5811,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18255:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5810,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18255:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5813,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18277:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5812,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18277:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5815,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18296:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5814,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18296:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18212:99:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5828,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18471:0:14"
            },
            "scope": 6970,
            "src": "18176:656:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5966,
              "nodeType": "Block",
              "src": "19966:746:14",
              "statements": [
                {
                  "assignments": [
                    5884
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5884,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5967,
                      "src": "19977:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5883,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "19977:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5892,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5888,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5873,
                            "src": "20026:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5889,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5875,
                            "src": "20034:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5886,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20009:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5887,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20009:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20009:31:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5885,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "19999:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19999:42:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19977:64:14"
                },
                {
                  "assignments": [
                    5894
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5894,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5967,
                      "src": "20051:21:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5893,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20051:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5903,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5898,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5871,
                            "src": "20102:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5899,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5884,
                            "src": "20115:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5900,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5877,
                            "src": "20128:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5896,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20085:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20085:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5901,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20085:48:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5895,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "20075:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20075:59:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20051:83:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "20153:39:14",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5905,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "20154:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5907,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5906,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5894,
                              "src": "20166:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20154:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5908,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4918,
                          "src": "20154:38:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 5910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20194:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 5904,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "20145:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20145:94:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5912,
                  "nodeType": "ExpressionStatement",
                  "src": "20145:94:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5914,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "20257:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5916,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5915,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5894,
                              "src": "20269:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20257:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5917,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4916,
                          "src": "20257:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5919,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "20303:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5918,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20296:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20296:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "20257:50:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20309:38:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 5913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "20249:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20249:99:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5924,
                  "nodeType": "ExpressionStatement",
                  "src": "20249:99:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5925,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "20359:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5927,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5926,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5894,
                          "src": "20371:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20359:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5928,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4920,
                      "src": "20359:42:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5929,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5873,
                      "src": "20404:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20359:51:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5931,
                  "nodeType": "ExpressionStatement",
                  "src": "20359:51:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5932,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "20420:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5934,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5933,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5894,
                          "src": "20432:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20420:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5935,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4918,
                      "src": "20420:38:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20461:4:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "20420:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5938,
                  "nodeType": "ExpressionStatement",
                  "src": "20420:45:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5939,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5877,
                      "src": "20480:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5940,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "20488:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5942,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5941,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5871,
                          "src": "20498:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20488:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5943,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4913,
                      "src": "20488:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20480:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5955,
                  "nodeType": "IfStatement",
                  "src": "20476:139:14",
                  "trueBody": {
                    "id": 5954,
                    "nodeType": "Block",
                    "src": "20517:98:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5946,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5871,
                              "src": "20552:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5947,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5873,
                              "src": "20565:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5948,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4943,
                                  "src": "20573:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 5950,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5949,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5871,
                                  "src": "20583:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20573:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4914_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 5951,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4901,
                              "src": "20573:30:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 5945,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6055,
                            "src": "20531:20:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 5952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20531:73:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5953,
                        "nodeType": "ExpressionStatement",
                        "src": "20531:73:14"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5957,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5871,
                        "src": "20646:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5958,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "20659:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5959,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "20659:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5960,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5884,
                        "src": "20671:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5961,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5873,
                        "src": "20684:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5962,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5875,
                        "src": "20692:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5963,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5877,
                        "src": "20699:4:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5956,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4873,
                      "src": "20630:15:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 5964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20630:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5965,
                  "nodeType": "EmitStatement",
                  "src": "20625:79:14"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 5967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5880,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5871,
                    "src": "19940:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5881,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5879,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5127,
                  "src": "19910:29:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19910:42:14"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5871,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19835:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5870,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19835:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5873,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19856:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19856:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5875,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19872:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5874,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19872:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5877,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19887:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5876,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19887:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19834:66:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5882,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19966:0:14"
            },
            "scope": 6970,
            "src": "19807:905:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6025,
              "nodeType": "Block",
              "src": "20872:524:14",
              "statements": [
                {
                  "assignments": [
                    5981
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5981,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6026,
                      "src": "20882:24:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5980,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20882:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5985,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4943,
                                "src": "20936:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5987,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5986,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5969,
                                "src": "20946:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20936:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4914_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5988,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4911,
                            "src": "20936:35:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5989,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5971,
                            "src": "20973:23:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5990,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5975,
                            "src": "20998:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5991,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5973,
                            "src": "21004:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5992,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5977,
                            "src": "21014:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5983,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20919:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5984,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20919:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5993,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20919:109:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5982,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "20909:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20909:120:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20882:147:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5996,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5975,
                      "src": "21137:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21144:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21137:8:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6007,
                  "nodeType": "IfStatement",
                  "src": "21133:73:14",
                  "trueBody": {
                    "id": 6006,
                    "nodeType": "Block",
                    "src": "21147:59:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6004,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5999,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4943,
                                "src": "21161:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 6001,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6000,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5969,
                                "src": "21171:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21161:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4914_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 6002,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4913,
                            "src": "21161:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6003,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5975,
                            "src": "21191:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21161:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6005,
                        "nodeType": "ExpressionStatement",
                        "src": "21161:34:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6008,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21215:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6010,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6009,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5969,
                          "src": "21225:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21215:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6011,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4911,
                      "src": "21215:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6012,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5981,
                      "src": "21253:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21215:54:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6014,
                  "nodeType": "ExpressionStatement",
                  "src": "21215:54:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6016,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5971,
                        "src": "21298:23:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6017,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5969,
                        "src": "21323:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6018,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5981,
                        "src": "21336:16:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6019,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5973,
                        "src": "21354:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6020,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5975,
                        "src": "21364:4:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6021,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "21370:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6022,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5977,
                        "src": "21375:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6015,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4859,
                      "src": "21285:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 6023,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21285:104:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6024,
                  "nodeType": "EmitStatement",
                  "src": "21280:109:14"
                }
              ]
            },
            "documentation": null,
            "id": 6026,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5969,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20747:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5968,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20747:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5971,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20768:31:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5970,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20768:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5973,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20801:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5972,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "20801:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5975,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20819:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5974,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20819:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5977,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20833:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5976,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20833:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20746:106:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5979,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20872:0:14"
            },
            "scope": 6970,
            "src": "20718:678:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6054,
              "nodeType": "Block",
              "src": "21503:136:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6035,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21513:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6037,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6036,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6028,
                          "src": "21523:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21513:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6038,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4909,
                      "src": "21513:34:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6039,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6030,
                      "src": "21550:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21513:43:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6041,
                  "nodeType": "ExpressionStatement",
                  "src": "21513:43:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6042,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21566:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6044,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6043,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6028,
                          "src": "21576:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21566:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4903,
                      "src": "21566:34:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6050,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6032,
                          "src": "21619:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6047,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "21610:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "21603:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 6048,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21603:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 6049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7094,
                        "src": "21603:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 6051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21603:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "21566:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 6053,
                  "nodeType": "ExpressionStatement",
                  "src": "21566:66:14"
                }
              ]
            },
            "documentation": null,
            "id": 6055,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6028,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21432:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6027,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21432:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6030,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21453:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6029,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21453:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6032,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21469:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6031,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21431:58:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6034,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21503:0:14"
            },
            "scope": 6970,
            "src": "21402:237:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6096,
              "nodeType": "Block",
              "src": "22369:257:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6075,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "22387:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6077,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6076,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6057,
                              "src": "22397:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22387:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6078,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4913,
                          "src": "22387:27:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "22417:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "22387:31:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 6081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22420:68:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 6074,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "22379:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22379:110:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6083,
                  "nodeType": "ExpressionStatement",
                  "src": "22379:110:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6084,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "22499:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6086,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6085,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6057,
                          "src": "22509:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22499:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6087,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4905,
                      "src": "22499:45:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 6088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22547:4:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "22499:52:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6090,
                  "nodeType": "ExpressionStatement",
                  "src": "22499:52:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6092,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6057,
                        "src": "22596:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6093,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6059,
                        "src": "22609:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6091,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4879,
                      "src": "22566:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 6094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22566:53:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6095,
                  "nodeType": "EmitStatement",
                  "src": "22561:58:14"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 6097,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6064,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22242:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6065,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6063,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4972,
                  "src": "22227:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22227:27:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6067,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22273:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6068,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6066,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "22263:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22263:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6070,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22329:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 6071,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6061,
                    "src": "22342:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6072,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6069,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "22294:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22294:61:14"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6057,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22156:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6056,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22156:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6059,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22177:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6058,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22177:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6061,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22196:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6060,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22196:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22155:62:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6073,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22369:0:14"
            },
            "scope": 6970,
            "src": "22120:506:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6145,
              "nodeType": "Block",
              "src": "23406:316:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6113,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6103,
                          "src": "23425:8:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 6114,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4783,
                          "src": "23437:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "23425:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 6116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23451:27:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 6112,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "23417:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23417:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6118,
                  "nodeType": "ExpressionStatement",
                  "src": "23417:62:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6120,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23506:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6121,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23519:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6119,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4885,
                      "src": "23494:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 6122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23494:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6123,
                  "nodeType": "EmitStatement",
                  "src": "23489:37:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6124,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "23537:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6126,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6125,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6099,
                          "src": "23547:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23537:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6127,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4905,
                      "src": "23537:45:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 6128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23585:5:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "23537:53:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6130,
                  "nodeType": "ExpressionStatement",
                  "src": "23537:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6132,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23620:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6133,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23633:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6134,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6103,
                        "src": "23641:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23651:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 6136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23654:5:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6131,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "23600:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 6137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23600:60:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6138,
                  "nodeType": "ExpressionStatement",
                  "src": "23600:60:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6140,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23691:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6141,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23704:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6142,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23712:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 6139,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6055,
                      "src": "23670:20:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 6143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23670:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6144,
                  "nodeType": "ExpressionStatement",
                  "src": "23670:44:14"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 6146,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6106,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6099,
                    "src": "23335:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6107,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6105,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4972,
                  "src": "23320:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23320:27:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6109,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6099,
                    "src": "23380:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6110,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6108,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5071,
                  "src": "23356:23:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23356:36:14"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6099,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23256:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6098,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23256:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6101,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23277:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6100,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23277:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6103,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23293:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6102,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23293:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23255:55:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6111,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23406:0:14"
            },
            "scope": 6970,
            "src": "23222:500:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6179,
              "nodeType": "Block",
              "src": "23974:201:14",
              "statements": [
                {
                  "assignments": [
                    6154
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6154,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 6180,
                      "src": "23984:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 6153,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23984:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6159,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6155,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24005:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6157,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6156,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6148,
                        "src": "24015:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24005:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6158,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "24005:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23984:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6164,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "24058:46:14",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6160,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4943,
                                  "src": "24059:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 6162,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6161,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6148,
                                  "src": "24069:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "24059:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4914_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 6163,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4905,
                              "src": "24059:45:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 6167,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6165,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6154,
                                  "src": "24109:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 6166,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4791,
                                  "src": "24123:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "24109:24:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 6168,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "24108:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "24058:76:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 6174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6170,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6154,
                                "src": "24139:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6172,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9705,
                                    "src": "24161:3:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6171,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "24154:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 6173,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24154:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "24139:26:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 6175,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "24138:28:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24058:108:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 6177,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24056:112:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6152,
                  "id": 6178,
                  "nodeType": "Return",
                  "src": "24049:119:14"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 6180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6148,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6180,
                  "src": "23921:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6147,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23921:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23920:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6151,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6180,
                  "src": "23968:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6150,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23968:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23967:6:14"
            },
            "scope": 6970,
            "src": "23900:275:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6195,
              "nodeType": "Block",
              "src": "24508:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6190,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24525:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6192,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6191,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6182,
                        "src": "24535:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24525:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6193,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "24525:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6189,
                  "id": 6194,
                  "nodeType": "Return",
                  "src": "24518:41:14"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6185,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6182,
                    "src": "24459:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6186,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6184,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "24444:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24444:27:14"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6182,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "24414:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6181,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24414:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24413:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6188,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "24499:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6187,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24499:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24498:9:14"
            },
            "scope": 6970,
            "src": "24390:176:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6211,
              "nodeType": "Block",
              "src": "24881:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6206,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24898:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6208,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6207,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6198,
                        "src": "24908:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24898:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6209,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "24898:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6205,
                  "id": 6210,
                  "nodeType": "Return",
                  "src": "24891:41:14"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6212,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6201,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6198,
                    "src": "24832:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6202,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6200,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "24817:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24817:27:14"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6198,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "24787:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24787:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24786:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6204,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "24872:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6203,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24872:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24871:9:14"
            },
            "scope": 6970,
            "src": "24768:171:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6275,
              "nodeType": "Block",
              "src": "25917:427:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6236,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6231,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6216,
                          "src": "25935:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6232,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "25951:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6234,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6233,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "25961:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25951:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6235,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4895,
                          "src": "25951:35:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "25935:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 6237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25988:25:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 6230,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "25927:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25927:87:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6239,
                  "nodeType": "ExpressionStatement",
                  "src": "25927:87:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6246,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6241,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6218,
                          "src": "26032:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6242,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26046:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6244,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6243,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26056:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26046:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6245,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4897,
                          "src": "26046:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "26032:47:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 6247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26081:23:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 6240,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26024:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26024:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6249,
                  "nodeType": "ExpressionStatement",
                  "src": "26024:81:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 6256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6251,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6220,
                          "src": "26123:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6252,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26138:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6254,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6253,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26148:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26138:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6255,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "26138:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "26123:45:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 6257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26170:29:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 6250,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26115:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26115:85:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6259,
                  "nodeType": "ExpressionStatement",
                  "src": "26115:85:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6266,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6261,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6222,
                          "src": "26218:8:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6262,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26230:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6264,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6263,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26240:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26230:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6265,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4913,
                          "src": "26230:27:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "26218:39:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 6267,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26259:26:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 6260,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26210:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6268,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26210:76:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6269,
                  "nodeType": "ExpressionStatement",
                  "src": "26210:76:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6270,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "26303:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6272,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6271,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6214,
                        "src": "26313:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26303:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6273,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "26303:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6229,
                  "id": 6274,
                  "nodeType": "Return",
                  "src": "26296:41:14"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 6276,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6225,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6214,
                    "src": "25868:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6226,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6224,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "25853:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "25853:27:14"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6214,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25729:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25729:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6216,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25759:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6215,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25759:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6218,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25781:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "25781:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6220,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25801:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6219,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25801:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6222,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25821:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6221,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25821:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25719:124:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6228,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25908:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25908:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25907:9:14"
            },
            "scope": 6970,
            "src": "25687:657:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6476,
              "nodeType": "Block",
              "src": "27856:2585:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6297,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6281,
                            "src": "27875:14:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "27875:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27899:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "27875:25:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 6301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27902:50:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 6296,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "27867:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27867:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6303,
                  "nodeType": "ExpressionStatement",
                  "src": "27867:86:14"
                },
                {
                  "assignments": [
                    6305
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6305,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28044:13:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6304,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "28044:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6310,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6306,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28060:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6308,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6307,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28076:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28060:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6309,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4923,
                    "src": "28060:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28044:50:14"
                },
                {
                  "assignments": [
                    6312
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6312,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28105:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6311,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28105:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6317,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6313,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28125:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6315,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6314,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28141:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28125:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6316,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4925,
                    "src": "28125:38:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28105:58:14"
                },
                {
                  "assignments": [
                    6319
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6319,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28174:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6318,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28174:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6324,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6320,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28197:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6322,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6321,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28213:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28197:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6323,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4927,
                    "src": "28197:41:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28174:64:14"
                },
                {
                  "assignments": [
                    6326
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6326,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28459:25:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6325,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28459:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6331,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6327,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "28487:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6329,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6328,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28497:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28487:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6330,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4911,
                    "src": "28487:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28459:63:14"
                },
                {
                  "assignments": [
                    6333
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6333,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28533:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6332,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28533:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6338,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6334,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "28555:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6336,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6335,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28565:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28555:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6337,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "28555:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28533:56:14"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6340,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28600:9:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6339,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28600:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6341,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28600:9:14"
                },
                {
                  "body": {
                    "id": 6411,
                    "nodeType": "Block",
                    "src": "28663:702:14",
                    "statements": [
                      {
                        "assignments": [
                          6354
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6354,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 6477,
                            "src": "28797:18:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 6353,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "28797:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6370,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6356,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6326,
                              "src": "28846:17:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6357,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6281,
                                "src": "28865:14:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6359,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6358,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28880:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28865:17:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6360,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6290,
                                "src": "28884:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6362,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6361,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28892:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28884:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6363,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6287,
                                "src": "28896:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6365,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6364,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28902:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28896:8:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6366,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6284,
                                "src": "28906:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 6368,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6367,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28912:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28906:8:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6355,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6556,
                            "src": "28818:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 6369,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28818:97:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28797:118:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6376,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6371,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6319,
                            "src": "28942:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6374,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6312,
                                "src": "28974:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6372,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "28957:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7067,
                              "src": "28957:16:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 6375,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28957:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "28942:42:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6377,
                        "nodeType": "ExpressionStatement",
                        "src": "28942:42:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6397,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 6378,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "29000:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6379,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6305,
                                "src": "29014:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 6380,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "28999:21:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6382,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "29060:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6383,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6333,
                                "src": "29073:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6384,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "29086:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6385,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6305,
                                "src": "29100:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6386,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6284,
                                  "src": "29124:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 6388,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6387,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29130:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29124:8:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6389,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6287,
                                  "src": "29134:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 6391,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6390,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29140:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29134:8:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6392,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6290,
                                  "src": "29144:7:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 6394,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6393,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29152:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29144:10:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6395,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6354,
                                "src": "29156:13:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 6381,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6683,
                              "src": "29023:19:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 6396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29023:147:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "28999:171:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6398,
                        "nodeType": "ExpressionStatement",
                        "src": "28999:171:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6399,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6312,
                            "src": "29282:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6400,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6287,
                              "src": "29294:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6402,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6401,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6340,
                              "src": "29300:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29294:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "29282:20:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6404,
                        "nodeType": "ExpressionStatement",
                        "src": "29282:20:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6405,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6326,
                            "src": "29316:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6406,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6281,
                              "src": "29336:14:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 6408,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6407,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6340,
                              "src": "29351:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29336:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "29316:37:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6410,
                        "nodeType": "ExpressionStatement",
                        "src": "29316:37:14"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6349,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6346,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6340,
                      "src": "28631:1:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6347,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6281,
                        "src": "28635:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28635:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28631:25:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6412,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6344,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6342,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6340,
                        "src": "28624:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "28628:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "28624:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6345,
                    "nodeType": "ExpressionStatement",
                    "src": "28624:5:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "28658:3:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6350,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6340,
                        "src": "28658:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6352,
                    "nodeType": "ExpressionStatement",
                    "src": "28658:3:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "28619:746:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6413,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6326,
                      "src": "29380:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6414,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4788,
                      "src": "29401:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "29380:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6467,
                    "nodeType": "Block",
                    "src": "30155:213:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6454,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6278,
                              "src": "30260:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6455,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6305,
                              "src": "30273:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6458,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6312,
                                  "src": "30297:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6456,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6319,
                                  "src": "30280:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6457,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7067,
                                "src": "30280:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 6459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "30280:27:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6453,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6504,
                            "src": "30250:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 6460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30250:58:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6461,
                        "nodeType": "ExpressionStatement",
                        "src": "30250:58:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "30322:35:14",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6462,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4947,
                              "src": "30329:15:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                              }
                            },
                            "id": 6464,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6463,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6278,
                              "src": "30345:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "30329:28:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$4928_storage",
                              "typeString": "struct RealitioERC20.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6466,
                        "nodeType": "ExpressionStatement",
                        "src": "30322:35:14"
                      }
                    ]
                  },
                  "id": 6468,
                  "nodeType": "IfStatement",
                  "src": "29376:992:14",
                  "trueBody": {
                    "id": 6452,
                    "nodeType": "Block",
                    "src": "29412:737:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6416,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6305,
                            "src": "29815:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6417,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "29824:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29815:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 6430,
                        "nodeType": "IfStatement",
                        "src": "29811:137:14",
                        "trueBody": {
                          "id": 6429,
                          "nodeType": "Block",
                          "src": "29838:110:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6420,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6278,
                                    "src": "29866:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6421,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6305,
                                    "src": "29879:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6422,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6319,
                                    "src": "29886:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6419,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6504,
                                  "src": "29856:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 6423,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29856:43:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6424,
                              "nodeType": "ExpressionStatement",
                              "src": "29856:43:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6427,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6425,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6319,
                                  "src": "29917:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6426,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29932:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "29917:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6428,
                              "nodeType": "ExpressionStatement",
                              "src": "29917:16:14"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6431,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "29962:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6433,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6432,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "29978:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "29962:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6434,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4923,
                            "src": "29962:34:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6435,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6305,
                            "src": "29999:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29962:42:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 6437,
                        "nodeType": "ExpressionStatement",
                        "src": "29962:42:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6438,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "30018:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6440,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6439,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "30034:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30018:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6441,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4925,
                            "src": "30018:38:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6442,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6312,
                            "src": "30059:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30018:50:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6444,
                        "nodeType": "ExpressionStatement",
                        "src": "30018:50:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6445,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "30082:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6447,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6446,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "30098:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30082:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6448,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4927,
                            "src": "30082:41:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6449,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6319,
                            "src": "30126:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30082:56:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6451,
                        "nodeType": "ExpressionStatement",
                        "src": "30082:56:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6469,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "30378:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6471,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6470,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6278,
                          "src": "30388:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "30378:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6472,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4911,
                      "src": "30378:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6473,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6326,
                      "src": "30416:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30378:55:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6475,
                  "nodeType": "ExpressionStatement",
                  "src": "30378:55:14"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 6477,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6293,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6278,
                    "src": "27832:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6294,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6292,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "27817:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "27817:27:14"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6278,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27694:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6277,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27694:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6281,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27724:24:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6279,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27724:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6280,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27724:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6284,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27750:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6282,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "27750:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6283,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27750:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6287,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27767:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6285,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "27767:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6286,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27767:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6290,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27784:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6288,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27784:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6289,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27784:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27684:123:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6295,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27856:0:14"
            },
            "scope": 6970,
            "src": "27662:2779:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6503,
              "nodeType": "Block",
              "src": "30531:113:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6486,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 444,
                        "src": "30541:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 6488,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6487,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6481,
                        "src": "30551:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "30541:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6493,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6483,
                          "src": "30581:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6489,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 444,
                            "src": "30560:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 6491,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6490,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6481,
                            "src": "30570:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30560:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6492,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "30560:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 6494,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30560:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "30541:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6496,
                  "nodeType": "ExpressionStatement",
                  "src": "30541:46:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6498,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6479,
                        "src": "30611:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6499,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6481,
                        "src": "30624:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6500,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6483,
                        "src": "30631:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6497,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4893,
                      "src": "30602:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 6501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30602:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6502,
                  "nodeType": "EmitStatement",
                  "src": "30597:40:14"
                }
              ]
            },
            "documentation": null,
            "id": 6504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6484,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6479,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30466:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6478,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30466:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6481,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30487:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6480,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30487:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6483,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30502:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6482,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30502:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30465:51:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30531:0:14"
            },
            "scope": 6970,
            "src": "30447:197:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6555,
              "nodeType": "Block",
              "src": "30835:364:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6519,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6506,
                      "src": "30849:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6523,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6508,
                              "src": "30897:12:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6524,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6510,
                              "src": "30911:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6525,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6512,
                              "src": "30919:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6526,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6514,
                              "src": "30925:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 6527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30931:4:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6521,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "30880:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6522,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "30880:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30880:56:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6520,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "30870:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30870:67:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30849:88:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6534,
                  "nodeType": "IfStatement",
                  "src": "30845:131:14",
                  "trueBody": {
                    "id": 6533,
                    "nodeType": "Block",
                    "src": "30940:36:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 6531,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30961:4:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6518,
                        "id": 6532,
                        "nodeType": "Return",
                        "src": "30954:11:14"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6535,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6506,
                      "src": "30989:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6539,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6508,
                              "src": "31037:12:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6540,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6510,
                              "src": "31051:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6541,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6512,
                              "src": "31059:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6542,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6514,
                              "src": "31065:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 6543,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31071:5:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6537,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "31020:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6538,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "31020:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31020:57:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6536,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "31010:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "31010:68:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30989:89:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6550,
                  "nodeType": "IfStatement",
                  "src": "30985:133:14",
                  "trueBody": {
                    "id": 6549,
                    "nodeType": "Block",
                    "src": "31081:37:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 6547,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "31102:5:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6518,
                        "id": 6548,
                        "nodeType": "Return",
                        "src": "31095:12:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 6552,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31135:56:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 6551,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9708,
                        9709
                      ],
                      "referencedDeclaration": 9709,
                      "src": "31128:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 6553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31128:64:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6554,
                  "nodeType": "ExpressionStatement",
                  "src": "31128:64:14"
                }
              ]
            },
            "documentation": null,
            "id": 6556,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6506,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30696:25:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6505,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30696:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6508,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30731:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6507,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30731:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6510,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30753:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6509,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30753:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6512,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30769:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6511,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30769:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6514,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30783:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6513,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30783:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30686:115:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6517,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30829:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6516,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "30829:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30828:6:14"
            },
            "scope": 6970,
            "src": "30650:549:14",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6682,
              "nodeType": "Block",
              "src": "31449:2168:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6579,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6572,
                    "src": "31648:13:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6614,
                  "nodeType": "IfStatement",
                  "src": "31644:482:14",
                  "trueBody": {
                    "id": 6613,
                    "nodeType": "Block",
                    "src": "31663:463:14",
                    "statements": [
                      {
                        "assignments": [
                          6581
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6581,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 6683,
                            "src": "31677:21:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6580,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31677:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6583,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 6582,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6570,
                          "src": "31701:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31677:30:14"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 6588,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "31822:39:14",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6584,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4951,
                                "src": "31823:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                }
                              },
                              "id": 6586,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6585,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6581,
                                "src": "31835:13:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31823:26:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                "typeString": "struct RealitioERC20.Commitment storage ref"
                              }
                            },
                            "id": 6587,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4918,
                            "src": "31823:38:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6611,
                          "nodeType": "Block",
                          "src": "31981:135:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6604,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6599,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6570,
                                  "src": "31999:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6600,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4951,
                                      "src": "32008:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                      }
                                    },
                                    "id": 6602,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6601,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6581,
                                      "src": "32020:13:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32008:26:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                      "typeString": "struct RealitioERC20.Commitment storage ref"
                                    }
                                  },
                                  "id": 6603,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4920,
                                  "src": "32008:42:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31999:51:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6605,
                              "nodeType": "ExpressionStatement",
                              "src": "31999:51:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6609,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "32068:33:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6606,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4951,
                                    "src": "32075:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6608,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6607,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6581,
                                    "src": "32087:13:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "32075:26:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6610,
                              "nodeType": "ExpressionStatement",
                              "src": "32068:33:14"
                            }
                          ]
                        },
                        "id": 6612,
                        "nodeType": "IfStatement",
                        "src": "31818:298:14",
                        "trueBody": {
                          "id": 6598,
                          "nodeType": "Block",
                          "src": "31863:112:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "31881:33:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6589,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4951,
                                    "src": "31888:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6591,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6590,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6581,
                                    "src": "31900:13:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31888:26:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6593,
                              "nodeType": "ExpressionStatement",
                              "src": "31881:33:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6594,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "31940:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6595,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6564,
                                    "src": "31954:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 6596,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "31939:21:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 6578,
                              "id": 6597,
                              "nodeType": "Return",
                              "src": "31932:28:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6615,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6570,
                      "src": "32140:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6616,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6560,
                      "src": "32150:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "32140:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6677,
                  "nodeType": "IfStatement",
                  "src": "32136:1435:14",
                  "trueBody": {
                    "id": 6676,
                    "nodeType": "Block",
                    "src": "32163:1408:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6620,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6618,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6564,
                            "src": "32182:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6619,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "32191:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "32182:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 6645,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6643,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6566,
                              "src": "32521:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 6644,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6564,
                              "src": "32529:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "32521:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 6674,
                          "nodeType": "IfStatement",
                          "src": "32517:1043:14",
                          "trueBody": {
                            "id": 6673,
                            "nodeType": "Block",
                            "src": "32536:1024:14",
                            "statements": [
                              {
                                "assignments": [
                                  6647
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 6647,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6683,
                                    "src": "33155:27:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 6646,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "33155:7:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 6655,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6650,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 6648,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6562,
                                          "src": "33186:12:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 6649,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6568,
                                          "src": "33202:4:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "33186:20:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 6651,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "33185:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 6653,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "33217:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6654,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "33185:44:14",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 6652,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6568,
                                    "src": "33210:4:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "33155:74:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6657,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6558,
                                      "src": "33322:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6658,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6564,
                                      "src": "33335:5:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6661,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6647,
                                          "src": "33359:19:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6659,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6562,
                                          "src": "33342:12:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6660,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7043,
                                        "src": "33342:16:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6662,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "33342:37:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 6656,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6504,
                                    "src": "33312:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 6663,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "33312:68:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6664,
                                "nodeType": "ExpressionStatement",
                                "src": "33312:68:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6667,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6665,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6564,
                                    "src": "33480:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6666,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6566,
                                    "src": "33488:4:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "33480:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 6668,
                                "nodeType": "ExpressionStatement",
                                "src": "33480:12:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6671,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6669,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "33510:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6670,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6647,
                                    "src": "33525:19:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "33510:34:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6672,
                                "nodeType": "ExpressionStatement",
                                "src": "33510:34:14"
                              }
                            ]
                          }
                        },
                        "id": 6675,
                        "nodeType": "IfStatement",
                        "src": "32178:1382:14",
                        "trueBody": {
                          "id": 6642,
                          "nodeType": "Block",
                          "src": "32205:306:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6623,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6621,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6564,
                                  "src": "32352:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 6622,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6566,
                                  "src": "32360:4:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "32352:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6624,
                              "nodeType": "ExpressionStatement",
                              "src": "32352:12:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6633,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6625,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6562,
                                  "src": "32382:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6628,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4943,
                                          "src": "32414:9:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                          }
                                        },
                                        "id": 6630,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6629,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6558,
                                          "src": "32424:11:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "32414:22:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                                          "typeString": "struct RealitioERC20.Question storage ref"
                                        }
                                      },
                                      "id": 6631,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4907,
                                      "src": "32414:29:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6626,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6562,
                                      "src": "32397:12:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6627,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7067,
                                    "src": "32397:16:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6632,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32397:47:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "32382:62:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6634,
                              "nodeType": "ExpressionStatement",
                              "src": "32382:62:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6640,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6635,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4943,
                                      "src": "32462:9:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 6637,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6636,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6558,
                                      "src": "32472:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32462:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4914_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 6638,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4907,
                                  "src": "32462:29:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6639,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "32494:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "32462:33:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6641,
                              "nodeType": "ExpressionStatement",
                              "src": "32462:33:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 6678,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "33589:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6679,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6564,
                        "src": "33603:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 6680,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "33588:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 6578,
                  "id": 6681,
                  "nodeType": "Return",
                  "src": "33581:28:14"
                }
              ]
            },
            "documentation": null,
            "id": 6683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6558,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31243:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6557,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31243:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6560,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31264:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6559,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31264:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6562,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31294:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6561,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31294:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6564,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31316:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6563,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31316:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6566,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31340:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6565,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31340:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6568,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31354:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6567,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31354:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6570,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31368:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6569,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31368:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6572,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31384:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6571,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31384:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31233:175:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6575,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31431:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31431:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6577,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31440:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31440:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31430:18:14"
            },
            "scope": 6970,
            "src": "31205:2412:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6838,
              "nodeType": "Block",
              "src": "34842:723:14",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6707,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 6839,
                      "src": "34861:10:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6706,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34861:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6708,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34861:10:14"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6710,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6839,
                      "src": "34881:9:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6709,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34881:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6711,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34881:9:14"
                },
                {
                  "body": {
                    "id": 6833,
                    "nodeType": "Block",
                    "src": "34945:594:14",
                    "statements": [
                      {
                        "assignments": [
                          6724
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6724,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "34959:11:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6723,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "34959:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6728,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6725,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6686,
                            "src": "34973:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6727,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6726,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6707,
                            "src": "34986:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "34973:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "34959:30:14"
                      },
                      {
                        "assignments": [
                          6730
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6730,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35003:10:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6729,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35003:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6734,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6731,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6689,
                            "src": "35016:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 6733,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6732,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6707,
                            "src": "35024:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "35016:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35003:24:14"
                      },
                      {
                        "assignments": [
                          6738
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6738,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35041:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6736,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35041:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6737,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35041:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6744,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6742,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35077:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6741,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35063:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6739,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35067:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6740,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35067:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35063:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35041:39:14"
                      },
                      {
                        "assignments": [
                          6748
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6748,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35094:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6746,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35094:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6747,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35094:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6754,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6752,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35130:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35116:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6749,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35120:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6750,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35120:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 6753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35116:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35094:39:14"
                      },
                      {
                        "assignments": [
                          6758
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6758,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35147:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6756,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35147:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6757,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35147:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6764,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6762,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35183:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35169:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (uint256[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6759,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35173:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6760,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35173:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 6763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35169:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35147:39:14"
                      },
                      {
                        "assignments": [
                          6768
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6768,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35200:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6766,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35200:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6767,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35200:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6774,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6772,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35236:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6771,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35222:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6769,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35226:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6770,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35226:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35222:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35200:39:14"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6776,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35253:9:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6775,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35253:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6777,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35253:9:14"
                      },
                      {
                        "body": {
                          "id": 6823,
                          "nodeType": "Block",
                          "src": "35301:180:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6788,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6738,
                                    "src": "35319:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6790,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6789,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35322:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35319:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6791,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6692,
                                    "src": "35327:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6793,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6792,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35339:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35327:14:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35319:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6795,
                              "nodeType": "ExpressionStatement",
                              "src": "35319:22:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6802,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6796,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6748,
                                    "src": "35359:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6798,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6797,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35362:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35359:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6799,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6695,
                                    "src": "35367:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6801,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6800,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35373:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35367:8:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "35359:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6803,
                              "nodeType": "ExpressionStatement",
                              "src": "35359:16:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6810,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6804,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6758,
                                    "src": "35393:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6806,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6805,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35396:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35393:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6807,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6698,
                                    "src": "35401:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6809,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6808,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35407:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35401:8:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "35393:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6811,
                              "nodeType": "ExpressionStatement",
                              "src": "35393:16:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6818,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6812,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6768,
                                    "src": "35427:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6814,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6813,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35430:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35427:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6815,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6701,
                                    "src": "35435:7:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6817,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6816,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35443:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35435:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35427:18:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6819,
                              "nodeType": "ExpressionStatement",
                              "src": "35427:18:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6821,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "35463:3:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6820,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6710,
                                  "src": "35463:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6822,
                              "nodeType": "ExpressionStatement",
                              "src": "35463:3:14"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6782,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6776,
                            "src": "35288:1:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6783,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6730,
                            "src": "35292:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "35288:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6824,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 6778,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6776,
                              "src": "35281:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 6779,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "35285:1:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "35281:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6781,
                          "nodeType": "ExpressionStatement",
                          "src": "35281:5:14"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "35296:3:14",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 6785,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6776,
                              "src": "35296:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6787,
                          "nodeType": "ExpressionStatement",
                          "src": "35296:3:14"
                        },
                        "nodeType": "ForStatement",
                        "src": "35276:205:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6826,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6724,
                              "src": "35508:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6827,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6738,
                              "src": "35513:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6828,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6748,
                              "src": "35517:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6829,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6758,
                              "src": "35521:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6830,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6768,
                              "src": "35525:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 6825,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6477,
                            "src": "35494:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 6831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35494:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6832,
                        "nodeType": "ExpressionStatement",
                        "src": "35494:34:14"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6716,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6707,
                      "src": "34913:2:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6717,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6686,
                        "src": "34918:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6718,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "34918:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "34913:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6834,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6712,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6707,
                        "src": "34905:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6713,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "34910:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "34905:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6715,
                    "nodeType": "ExpressionStatement",
                    "src": "34905:6:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6721,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "34939:4:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6720,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6707,
                        "src": "34939:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6722,
                    "nodeType": "ExpressionStatement",
                    "src": "34939:4:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "34900:639:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6835,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "35548:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "35548:10:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6837,
                  "nodeType": "ExpressionStatement",
                  "src": "35548:10:14"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 6839,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 6704,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6703,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "34754:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "34754:10:14"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6686,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34612:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6684,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34612:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6685,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34612:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6689,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34636:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6687,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34636:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6688,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34636:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6692,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34664:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6690,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34664:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6691,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34664:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6695,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34687:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6693,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "34687:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6694,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34687:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6698,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34704:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6696,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34704:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6697,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34704:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6701,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34721:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6699,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34721:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6700,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34721:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34602:142:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6705,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "34842:0:14"
            },
            "scope": 6970,
            "src": "34562:1003:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6851,
              "nodeType": "Block",
              "src": "35788:59:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6846,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "35805:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6848,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6847,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6841,
                        "src": "35815:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "35805:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6849,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4895,
                    "src": "35805:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6845,
                  "id": 6850,
                  "nodeType": "Return",
                  "src": "35798:42:14"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 6852,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6841,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6852,
                  "src": "35733:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6840,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35733:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35732:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6845,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6844,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6852,
                  "src": "35779:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6843,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35779:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35778:9:14"
            },
            "scope": 6970,
            "src": "35709:138:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6864,
              "nodeType": "Block",
              "src": "36046:57:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6859,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36063:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6861,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6860,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6854,
                        "src": "36073:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36063:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6862,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4897,
                    "src": "36063:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6858,
                  "id": 6863,
                  "nodeType": "Return",
                  "src": "36056:40:14"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 6865,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6855,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6854,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "35991:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6853,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35991:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35990:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6857,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "36037:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6856,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "36037:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36036:9:14"
            },
            "scope": 6970,
            "src": "35968:135:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6877,
              "nodeType": "Block",
              "src": "36314:57:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6872,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36331:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6874,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6873,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6867,
                        "src": "36341:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36331:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6875,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "36331:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6871,
                  "id": 6876,
                  "nodeType": "Return",
                  "src": "36324:40:14"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 6878,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6867,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6878,
                  "src": "36260:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36260:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36259:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6871,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6870,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6878,
                  "src": "36306:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6869,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36306:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36305:8:14"
            },
            "scope": 6970,
            "src": "36238:133:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6890,
              "nodeType": "Block",
              "src": "36572:54:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6885,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36589:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6887,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6886,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6880,
                        "src": "36599:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36589:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6888,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4901,
                    "src": "36589:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6884,
                  "id": 6889,
                  "nodeType": "Return",
                  "src": "36582:37:14"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 6891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6880,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6891,
                  "src": "36518:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6879,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36518:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36517:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6883,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6891,
                  "src": "36564:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6882,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36564:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36563:8:14"
            },
            "scope": 6970,
            "src": "36498:128:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6903,
              "nodeType": "Block",
              "src": "36842:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6898,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36859:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6900,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6899,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6893,
                        "src": "36869:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36859:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6901,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "36859:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6897,
                  "id": 6902,
                  "nodeType": "Return",
                  "src": "36852:41:14"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 6904,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6894,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6893,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6904,
                  "src": "36788:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6892,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36788:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36787:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6897,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6896,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6904,
                  "src": "36834:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6895,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36834:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36833:8:14"
            },
            "scope": 6970,
            "src": "36765:135:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6916,
              "nodeType": "Block",
              "src": "37107:69:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6911,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37124:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6913,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6912,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6906,
                        "src": "37134:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37124:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6914,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4905,
                    "src": "37124:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6910,
                  "id": 6915,
                  "nodeType": "Return",
                  "src": "37117:52:14"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 6917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6907,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6906,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6917,
                  "src": "37055:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6905,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37055:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37054:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6909,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6917,
                  "src": "37101:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6908,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37101:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37100:6:14"
            },
            "scope": 6970,
            "src": "37025:151:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6929,
              "nodeType": "Block",
              "src": "37429:53:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6924,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37446:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6926,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6925,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6919,
                        "src": "37456:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37446:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6927,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4907,
                    "src": "37446:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6923,
                  "id": 6928,
                  "nodeType": "Return",
                  "src": "37439:36:14"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 6930,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6919,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6930,
                  "src": "37374:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37374:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37373:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6922,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6930,
                  "src": "37420:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6921,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37420:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37419:9:14"
            },
            "scope": 6970,
            "src": "37355:127:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6942,
              "nodeType": "Block",
              "src": "37665:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6937,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37682:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6939,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6938,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6932,
                        "src": "37692:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37682:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6940,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "37682:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6936,
                  "id": 6941,
                  "nodeType": "Return",
                  "src": "37675:41:14"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 6943,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6932,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6943,
                  "src": "37610:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6931,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37610:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37609:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6935,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6943,
                  "src": "37656:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37656:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37655:9:14"
            },
            "scope": 6970,
            "src": "37587:136:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6955,
              "nodeType": "Block",
              "src": "37986:59:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6950,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "38003:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6952,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6951,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6945,
                        "src": "38013:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38003:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6953,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4911,
                    "src": "38003:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6949,
                  "id": 6954,
                  "nodeType": "Return",
                  "src": "37996:42:14"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 6956,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6945,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6956,
                  "src": "37931:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6944,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37931:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37930:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6948,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6956,
                  "src": "37977:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6947,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37977:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37976:9:14"
            },
            "scope": 6970,
            "src": "37907:138:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6968,
              "nodeType": "Block",
              "src": "38244:51:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6963,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "38261:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6965,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6964,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6958,
                        "src": "38271:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38261:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6966,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4913,
                    "src": "38261:27:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6962,
                  "id": 6967,
                  "nodeType": "Return",
                  "src": "38254:34:14"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 6969,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6958,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6969,
                  "src": "38189:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6957,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "38189:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38188:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6961,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6969,
                  "src": "38235:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "38235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38234:9:14"
            },
            "scope": 6970,
            "src": "38172:123:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6971,
        "src": "133:38165:14"
      }
    ],
    "src": "0:38299:14"
  },
  "legacyAST": {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioERC20.sol",
    "exportedSymbols": {
      "RealitioERC20": [
        6970
      ]
    },
    "id": 6971,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4767,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:14"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 4768,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 7069,
        "src": "26:35:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
        "file": "./RealitioSafeMath32.sol",
        "id": 4769,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 7096,
        "src": "62:34:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolderERC20.sol",
        "file": "./BalanceHolderERC20.sol",
        "id": 4770,
        "nodeType": "ImportDirective",
        "scope": 6971,
        "sourceUnit": 485,
        "src": "97:34:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4771,
              "name": "BalanceHolder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 484,
              "src": "159:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BalanceHolder_$484",
                "typeString": "contract BalanceHolder"
              }
            },
            "id": 4772,
            "nodeType": "InheritanceSpecifier",
            "src": "159:13:14"
          }
        ],
        "contractDependencies": [
          484
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6970,
        "linearizedBaseContracts": [
          6970,
          484
        ],
        "name": "RealitioERC20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4775,
            "libraryName": {
              "contractScope": null,
              "id": 4773,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7068,
              "src": "186:19:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$7068",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "180:38:14",
            "typeName": {
              "id": 4774,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "210:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 4778,
            "libraryName": {
              "contractScope": null,
              "id": 4776,
              "name": "RealitioSafeMath32",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7095,
              "src": "229:18:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath32_$7095",
                "typeString": "library RealitioSafeMath32"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "223:36:14",
            "typeName": {
              "id": 4777,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "252:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            }
          },
          {
            "constant": true,
            "id": 4783,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "265:42:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4779,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4781,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "305:1:14",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4780,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "297:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 4782,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "297:10:14",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4788,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "390:39:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 4784,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "390:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 4786,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "427:1:14",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 4785,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "419:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 4787,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "419:10:14",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4791,
            "name": "UNANSWERED",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "524:30:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4789,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4790,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "553:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4794,
            "name": "COMMITMENT_NON_EXISTENT",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "647:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4792,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "647:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4793,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4797,
            "name": "COMMITMENT_TIMEOUT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "775:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 4795,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "775:6:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 4796,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "818:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4803,
            "name": "LogSetQuestionFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4802,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4799,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4803,
                  "src": "859:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4798,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "859:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4801,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4803,
                  "src": "887:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4800,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "887:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:58:14"
            },
            "src": "826:82:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4811,
            "name": "LogNewTemplate",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4805,
                  "indexed": true,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "944:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4804,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4807,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "981:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4806,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4809,
                  "indexed": false,
                  "name": "question_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 4811,
                  "src": "1012:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4808,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "934:104:14"
            },
            "src": "914:125:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4833,
            "name": "LogNewQuestion",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4813,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1075:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1075:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4815,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1112:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4814,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1112:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4817,
                  "indexed": false,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1143:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4816,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4819,
                  "indexed": false,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1172:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4818,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1172:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4821,
                  "indexed": true,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1197:28:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4820,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1197:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4823,
                  "indexed": false,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1235:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4822,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4825,
                  "indexed": false,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1264:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4824,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4827,
                  "indexed": false,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1288:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 4826,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1288:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4829,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1315:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1315:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4831,
                  "indexed": false,
                  "name": "created",
                  "nodeType": "VariableDeclaration",
                  "scope": 4833,
                  "src": "1338:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4830,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1338:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1065:294:14"
            },
            "src": "1045:315:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4843,
            "name": "LogFundAnswerBounty",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4835,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1401:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4834,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4837,
                  "indexed": false,
                  "name": "bounty_added",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1438:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4836,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1438:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4839,
                  "indexed": false,
                  "name": "bounty",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1468:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4838,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1468:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4841,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4843,
                  "src": "1492:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4840,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1492:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1391:128:14"
            },
            "src": "1366:154:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4859,
            "name": "LogNewAnswer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4845,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1554:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1554:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4847,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1578:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4846,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1578:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4849,
                  "indexed": false,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1615:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1615:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4851,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1645:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4850,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1645:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4853,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1675:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4852,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4855,
                  "indexed": false,
                  "name": "ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1697:10:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4854,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1697:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4857,
                  "indexed": false,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "1717:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4856,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1717:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:197:14"
            },
            "src": "1526:216:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4873,
            "name": "LogAnswerReveal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4872,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4861,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1779:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4860,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1779:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4863,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1817:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4862,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4865,
                  "indexed": true,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1848:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4864,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1848:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4867,
                  "indexed": false,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1886:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1886:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4869,
                  "indexed": false,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1911:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4868,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4871,
                  "indexed": false,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 4873,
                  "src": "1935:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4870,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:184:14"
            },
            "src": "1748:206:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4879,
            "name": "LogNotifyOfArbitrationRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4875,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4879,
                  "src": "2005:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2005:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4877,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4879,
                  "src": "2042:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4876,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2042:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1995:74:14"
            },
            "src": "1960:110:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4885,
            "name": "LogFinalize",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4881,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4885,
                  "src": "2103:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4883,
                  "indexed": true,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4885,
                  "src": "2140:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4882,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2140:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2093:75:14"
            },
            "src": "2076:93:14"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 4893,
            "name": "LogClaim",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 4892,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4887,
                  "indexed": true,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2199:27:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4886,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4889,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2236:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4888,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2236:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4891,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 4893,
                  "src": "2266:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4890,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2189:97:14"
            },
            "src": "2175:112:14"
          },
          {
            "canonicalName": "RealitioERC20.Question",
            "id": 4914,
            "members": [
              {
                "constant": false,
                "id": 4895,
                "name": "content_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2319:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4894,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2319:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4897,
                "name": "arbitrator",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2349:18:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4896,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2349:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4899,
                "name": "opening_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2377:17:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4898,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2377:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4901,
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2404:14:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4900,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2404:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4903,
                "name": "finalize_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2428:18:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4902,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2428:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4905,
                "name": "is_pending_arbitration",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2456:27:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4904,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2456:4:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4907,
                "name": "bounty",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2493:14:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4906,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2493:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4909,
                "name": "best_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2517:19:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4908,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2517:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4911,
                "name": "history_hash",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2546:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4910,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2546:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4913,
                "name": "bond",
                "nodeType": "VariableDeclaration",
                "scope": 4914,
                "src": "2576:12:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4912,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Question",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2293:302:14",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Commitment",
            "id": 4921,
            "members": [
              {
                "constant": false,
                "id": 4916,
                "name": "reveal_ts",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2726:16:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 4915,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2726:6:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4918,
                "name": "is_revealed",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2752:16:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 4917,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2752:4:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4920,
                "name": "revealed_answer",
                "nodeType": "VariableDeclaration",
                "scope": 4921,
                "src": "2778:23:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4919,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Commitment",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2698:110:14",
            "visibility": "public"
          },
          {
            "canonicalName": "RealitioERC20.Claim",
            "id": 4928,
            "members": [
              {
                "constant": false,
                "id": 4923,
                "name": "payee",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "2959:13:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4922,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2959:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4925,
                "name": "last_bond",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "2982:17:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4924,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2982:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4927,
                "name": "queued_funds",
                "nodeType": "VariableDeclaration",
                "scope": 4928,
                "src": "3009:20:14",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4926,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3009:7:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 6970,
            "src": "2936:100:14",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4931,
            "name": "nextTemplateID",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3042:26:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4929,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "3042:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 4930,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3067:1:14",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4935,
            "name": "templates",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3074:44:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 4934,
              "keyType": {
                "id": 4932,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3082:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3074:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 4933,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3093:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4939,
            "name": "template_hashes",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3124:50:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
              "typeString": "mapping(uint256 => bytes32)"
            },
            "typeName": {
              "id": 4938,
              "keyType": {
                "id": 4936,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3132:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "3124:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                "typeString": "mapping(uint256 => bytes32)"
              },
              "valueType": {
                "id": 4937,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3143:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4943,
            "name": "questions",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3180:45:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
            },
            "typeName": {
              "id": 4942,
              "keyType": {
                "id": 4940,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3188:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3180:28:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4941,
                "name": "Question",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4914,
                "src": "3199:8:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$4914_storage_ptr",
                  "typeString": "struct RealitioERC20.Question"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4947,
            "name": "question_claims",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3231:48:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
            },
            "typeName": {
              "id": 4946,
              "keyType": {
                "id": 4944,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3239:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3231:25:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4945,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4928,
                "src": "3250:5:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$4928_storage_ptr",
                  "typeString": "struct RealitioERC20.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4951,
            "name": "commitments",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3285:49:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
            },
            "typeName": {
              "id": 4950,
              "keyType": {
                "id": 4948,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "3293:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "3285:30:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4949,
                "name": "Commitment",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4921,
                "src": "3304:10:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$4921_storage_ptr",
                  "typeString": "struct RealitioERC20.Commitment"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4955,
            "name": "arbitrator_question_fees",
            "nodeType": "VariableDeclaration",
            "scope": 6970,
            "src": "3340:59:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 4954,
              "keyType": {
                "id": 4952,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3348:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3340:27:14",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 4953,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "3359:7:14",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4971,
              "nodeType": "Block",
              "src": "3452:117:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4960,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9703,
                            "src": "3470:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 4961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3470:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4962,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3484:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4964,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4963,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4957,
                              "src": "3494:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3484:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4965,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4897,
                          "src": "3484:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3470:47:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
                        "id": 4967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3519:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        },
                        "value": "msg.sender must be arbitrator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5af564fa249397c704c7c39694db25de233707a7dfa60dd4e063a5865f683bf0",
                          "typeString": "literal_string \"msg.sender must be arbitrator\""
                        }
                      ],
                      "id": 4959,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3462:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3462:89:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4969,
                  "nodeType": "ExpressionStatement",
                  "src": "3462:89:14"
                },
                {
                  "id": 4970,
                  "nodeType": "PlaceholderStatement",
                  "src": "3561:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4972,
            "name": "onlyArbitrator",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4957,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "3431:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4956,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3431:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3430:21:14"
            },
            "src": "3407:162:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4975,
              "nodeType": "Block",
              "src": "3595:18:14",
              "statements": [
                {
                  "id": 4974,
                  "nodeType": "PlaceholderStatement",
                  "src": "3605:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4976,
            "name": "stateAny",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4973,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:2:14"
            },
            "src": "3575:38:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4991,
              "nodeType": "Block",
              "src": "3665:99:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 4986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4981,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3683:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4983,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4982,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4978,
                              "src": "3693:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3683:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 4984,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "3683:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4985,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3717:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3683:35:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
                        "id": 4987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3720:25:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        },
                        "value": "question must not exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9422abd8923f5fcae9417fb15deac6177aedec6abb4620f33db030efb4ed0419",
                          "typeString": "literal_string \"question must not exist\""
                        }
                      ],
                      "id": 4980,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3675:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3675:71:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4989,
                  "nodeType": "ExpressionStatement",
                  "src": "3675:71:14"
                },
                {
                  "id": 4990,
                  "nodeType": "PlaceholderStatement",
                  "src": "3756:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 4992,
            "name": "stateNotCreated",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4978,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4992,
                  "src": "3644:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4977,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3644:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3643:21:14"
            },
            "src": "3619:145:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5056,
              "nodeType": "Block",
              "src": "3810:547:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5002,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4997,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3828:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 4999,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4998,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4994,
                              "src": "3838:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3828:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5000,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "3828:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3861:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3828:34:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 5003,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3864:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 4996,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3820:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3820:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5005,
                  "nodeType": "ExpressionStatement",
                  "src": "3820:66:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3904:46:14",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5007,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "3905:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5009,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5008,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4994,
                              "src": "3915:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3905:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5010,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_pending_arbitration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4905,
                          "src": "3905:45:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
                        "id": 5012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3952:42:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        },
                        "value": "question must not be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0d7c56d5455922671038afc010672319828847765f75d021ca63b233340fb79",
                          "typeString": "literal_string \"question must not be pending arbitration\""
                        }
                      ],
                      "id": 5006,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "3896:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3896:99:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5014,
                  "nodeType": "ExpressionStatement",
                  "src": "3896:99:14"
                },
                {
                  "assignments": [
                    5016
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5016,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5057,
                      "src": "4005:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5015,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4005:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5021,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5017,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4026:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5019,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5018,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4994,
                        "src": "4036:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4026:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5020,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "4026:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4005:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5023,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5016,
                            "src": "4078:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5024,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4791,
                            "src": "4093:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4078:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5026,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5016,
                            "src": "4107:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5028,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4128:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5027,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4121:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4121:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4107:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4078:54:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5032,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4134:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        },
                        "value": "finalization deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_381ca4d13deaf278dc64e461f023657740bec9f7b7a71cf63c10807ee5f2d777",
                          "typeString": "literal_string \"finalization deadline must not have passed\""
                        }
                      ],
                      "id": 5022,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4070:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4070:109:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5034,
                  "nodeType": "ExpressionStatement",
                  "src": "4070:109:14"
                },
                {
                  "assignments": [
                    5036
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5036,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5057,
                      "src": "4189:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5035,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4189:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5041,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5037,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4209:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5039,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5038,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4994,
                        "src": "4219:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4209:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5040,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "4209:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4189:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5051,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5043,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5036,
                            "src": "4260:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5044,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4274:1:14",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4260:15:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5050,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5046,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5036,
                            "src": "4279:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5048,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4300:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4293:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5049,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4293:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4279:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4260:44:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 5052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4306:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 5042,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4252:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4252:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5054,
                  "nodeType": "ExpressionStatement",
                  "src": "4252:86:14"
                },
                {
                  "id": 5055,
                  "nodeType": "PlaceholderStatement",
                  "src": "4349:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5057,
            "name": "stateOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4994,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5057,
                  "src": "3789:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3789:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3788:21:14"
            },
            "src": "3770:587:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5070,
              "nodeType": "Block",
              "src": "4417:122:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5062,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "4435:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5064,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5063,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5059,
                            "src": "4445:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4435:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5065,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "is_pending_arbitration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4905,
                        "src": "4435:45:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
                        "id": 5066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4482:38:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        },
                        "value": "question must be pending arbitration"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f7d8d6d43d9c6b0643db0ab03bfd160dd192eaa68b6c3b38d0d94803ffac248",
                          "typeString": "literal_string \"question must be pending arbitration\""
                        }
                      ],
                      "id": 5061,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4427:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4427:94:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5068,
                  "nodeType": "ExpressionStatement",
                  "src": "4427:94:14"
                },
                {
                  "id": 5069,
                  "nodeType": "PlaceholderStatement",
                  "src": "4531:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5071,
            "name": "statePendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5059,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5071,
                  "src": "4396:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5058,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4396:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4395:21:14"
            },
            "src": "4363:176:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5126,
              "nodeType": "Block",
              "src": "4605:437:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5076,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "4623:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5078,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5077,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5073,
                              "src": "4633:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4623:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5079,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "4623:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5080,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4656:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4623:34:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d757374206578697374",
                        "id": 5082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4659:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        },
                        "value": "question must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_472769862e940c55535785d7e47562583d0c118be9a62024347d29ed8338806b",
                          "typeString": "literal_string \"question must exist\""
                        }
                      ],
                      "id": 5075,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4615:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4615:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5084,
                  "nodeType": "ExpressionStatement",
                  "src": "4615:66:14"
                },
                {
                  "assignments": [
                    5086
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5086,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5127,
                      "src": "4691:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5085,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5091,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5087,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4712:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5089,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5088,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5073,
                        "src": "4722:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4712:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5090,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "4712:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5095,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5093,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5086,
                            "src": "4764:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5094,
                            "name": "UNANSWERED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4791,
                            "src": "4779:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4764:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5096,
                            "name": "finalize_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5086,
                            "src": "4793:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5098,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4814:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5097,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4807:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4807:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4793:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4764:54:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4820:43:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        },
                        "value": "finalization dealine must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8f540895d8d15453e87897307cb8351f2857abfee4e235e10c3b3c286692a622",
                          "typeString": "literal_string \"finalization dealine must not have passed\""
                        }
                      ],
                      "id": 5092,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4756:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4756:108:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5104,
                  "nodeType": "ExpressionStatement",
                  "src": "4756:108:14"
                },
                {
                  "assignments": [
                    5106
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5106,
                      "name": "opening_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 5127,
                      "src": "4874:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5105,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4874:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5111,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5107,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "4894:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 5109,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5108,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5073,
                        "src": "4904:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4894:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 5110,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "4894:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4874:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5113,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5106,
                            "src": "4945:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5114,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4959:1:14",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4945:15:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 5120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5116,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5106,
                            "src": "4964:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5118,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9705,
                                "src": "4985:3:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5117,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4978:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint32_$",
                                "typeString": "type(uint32)"
                              },
                              "typeName": "uint32"
                            },
                            "id": 5119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4978:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "4964:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4945:44:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
                        "id": 5122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4991:31:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        },
                        "value": "opening date must have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5963fbf852ce76142d772c6ce4c8614e81ba76b348890013b4cd0addd58b31b3",
                          "typeString": "literal_string \"opening date must have passed\""
                        }
                      ],
                      "id": 5112,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "4937:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4937:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5124,
                  "nodeType": "ExpressionStatement",
                  "src": "4937:86:14"
                },
                {
                  "id": 5125,
                  "nodeType": "PlaceholderStatement",
                  "src": "5034:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5127,
            "name": "stateOpenOrPendingArbitration",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5073,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5127,
                  "src": "4584:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5072,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4584:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4583:21:14"
            },
            "src": "4545:497:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5139,
              "nodeType": "Block",
              "src": "5093:91:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5133,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5129,
                            "src": "5123:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 5132,
                          "name": "isFinalized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6180,
                          "src": "5111:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 5134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5111:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
                        "id": 5135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5137:28:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        },
                        "value": "question must be finalized"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7678ea862d4110864dbd24145ec43051bb85f78d8eeb3bbb14a3533dd60847c8",
                          "typeString": "literal_string \"question must be finalized\""
                        }
                      ],
                      "id": 5131,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5103:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5103:63:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5137,
                  "nodeType": "ExpressionStatement",
                  "src": "5103:63:14"
                },
                {
                  "id": 5138,
                  "nodeType": "PlaceholderStatement",
                  "src": "5176:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5140,
            "name": "stateFinalized",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5129,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5140,
                  "src": "5072:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5072:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5071:21:14"
            },
            "src": "5048:136:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5168,
              "nodeType": "Block",
              "src": "5251:184:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5147,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5144,
                          "src": "5269:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5278:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5269:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520706f736974697665",
                        "id": 5150,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5281:23:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        },
                        "value": "bond must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b3c9ee472042e2067e6f11b009a7238c6ed21a4872f0b12d2abbe4092d3c0b88",
                          "typeString": "literal_string \"bond must be positive\""
                        }
                      ],
                      "id": 5146,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5261:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5261:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5152,
                  "nodeType": "ExpressionStatement",
                  "src": "5261:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5163,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5154,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5144,
                          "src": "5324:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 5160,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5367:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 5155,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4943,
                                      "src": "5335:9:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 5157,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5156,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5142,
                                      "src": "5345:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5335:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4914_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 5158,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "bond",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4913,
                                  "src": "5335:27:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5159,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mul",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7005,
                                "src": "5335:31:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 5161,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5335:34:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 5162,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5334:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5324:46:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
                        "id": 5164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5372:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        },
                        "value": "bond must be double at least previous bond"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_65ffa1219e4f08f995c93eadfebcd61b4db428d3222f9b65896f079b3b960d3d",
                          "typeString": "literal_string \"bond must be double at least previous bond\""
                        }
                      ],
                      "id": 5153,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5316:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5316:101:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5166,
                  "nodeType": "ExpressionStatement",
                  "src": "5316:101:14"
                },
                {
                  "id": 5167,
                  "nodeType": "PlaceholderStatement",
                  "src": "5427:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5169,
            "name": "bondMustDouble",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5142,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5169,
                  "src": "5214:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5141,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5214:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5144,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5169,
                  "src": "5235:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5143,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5213:37:14"
            },
            "src": "5190:245:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5191,
              "nodeType": "Block",
              "src": "5528:159:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5175,
                      "name": "max_previous",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5173,
                      "src": "5542:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5557:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5542:16:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5189,
                  "nodeType": "IfStatement",
                  "src": "5538:132:14",
                  "trueBody": {
                    "id": 5188,
                    "nodeType": "Block",
                    "src": "5560:110:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5184,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5179,
                                    "name": "questions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4943,
                                    "src": "5582:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                    }
                                  },
                                  "id": 5181,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 5180,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5171,
                                    "src": "5592:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5582:22:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Question_$4914_storage",
                                    "typeString": "struct RealitioERC20.Question storage ref"
                                  }
                                },
                                "id": 5182,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "bond",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4913,
                                "src": "5582:27:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5183,
                                "name": "max_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5173,
                                "src": "5613:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5582:43:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
                              "id": 5185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5627:31:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              },
                              "value": "bond must exceed max_previous"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_86da50f4411a4001f63186489f5e9177ab1df516512e13b6a709fd5c2385c100",
                                "typeString": "literal_string \"bond must exceed max_previous\""
                              }
                            ],
                            "id": 5178,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "5574:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5574:85:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5187,
                        "nodeType": "ExpressionStatement",
                        "src": "5574:85:14"
                      }
                    ]
                  }
                },
                {
                  "id": 5190,
                  "nodeType": "PlaceholderStatement",
                  "src": "5679:1:14"
                }
              ]
            },
            "documentation": null,
            "id": 5192,
            "name": "previousBondMustNotBeatMaxPrevious",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5171,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "5485:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5170,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5485:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5173,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5192,
                  "src": "5506:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5172,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5506:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5484:43:14"
            },
            "src": "5441:246:14",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5210,
              "nodeType": "Block",
              "src": "5742:108:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_contract$_IERC20_$1352",
                          "typeString": "contract IERC20"
                        },
                        "id": 5202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5198,
                          "name": "token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 440,
                          "src": "5760:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1352",
                            "typeString": "contract IERC20"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 5200,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5776:3:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5199,
                            "name": "IERC20",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1352,
                            "src": "5769:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IERC20_$1352_$",
                              "typeString": "type(contract IERC20)"
                            }
                          },
                          "id": 5201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5769:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IERC20_$1352",
                            "typeString": "contract IERC20"
                          }
                        },
                        "src": "5760:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
                        "id": 5203,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5782:36:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        },
                        "value": "Token can only be initialized once"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
                          "typeString": "literal_string \"Token can only be initialized once\""
                        }
                      ],
                      "id": 5197,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "5752:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5752:67:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5205,
                  "nodeType": "ExpressionStatement",
                  "src": "5752:67:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5206,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 440,
                      "src": "5829:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1352",
                        "typeString": "contract IERC20"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5207,
                      "name": "_token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5194,
                      "src": "5837:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC20_$1352",
                        "typeString": "contract IERC20"
                      }
                    },
                    "src": "5829:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "id": 5209,
                  "nodeType": "ExpressionStatement",
                  "src": "5829:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 5211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 5211,
                  "src": "5711:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$1352",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5193,
                    "name": "IERC20",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1352,
                    "src": "5711:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$1352",
                      "typeString": "contract IERC20"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5710:15:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5742:0:14"
            },
            "scope": 6970,
            "src": "5693:157:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5234,
              "nodeType": "Block",
              "src": "6037:538:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6062:65:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_2630d91f54445fa42ec6738610b1a4c52b08a197156ab2ed97e4e17201528f2f",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5214,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6047:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6047:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5217,
                  "nodeType": "ExpressionStatement",
                  "src": "6047:81:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6153:81:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f006792a99a5de2495a30060356c53fdfd8cd04c53ad3402c5353035dc6b9589",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5218,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6138:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6138:97:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5221,
                  "nodeType": "ExpressionStatement",
                  "src": "6138:97:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6260:92:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_e49d22c3fb3eac70dc2d9d76aa17b7e4b487f2f4b7c683f3705b638453520000",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5222,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6245:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6245:108:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5225,
                  "nodeType": "ExpressionStatement",
                  "src": "6245:108:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5227,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6378:94:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1d41a41b7d3550c01209c10495988bfa01dd2e86c5a3fae5f9dbc2ccde20c1a9",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5226,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6363:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6363:110:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5229,
                  "nodeType": "ExpressionStatement",
                  "src": "6363:110:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
                        "id": 5231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6498:69:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        },
                        "value": "{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_5b13a2ad9e4dfbf057ecf2c35d4152b61718a3ab46a14db63feb17b1515749ba",
                          "typeString": "literal_string \"{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}\""
                        }
                      ],
                      "id": 5230,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "6483:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6483:85:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5233,
                  "nodeType": "ExpressionStatement",
                  "src": "6483:85:14"
                }
              ]
            },
            "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
            "id": 5235,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5212,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6022:2:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5213,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6037:0:14"
            },
            "scope": 6970,
            "src": "6011:564:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5255,
              "nodeType": "Block",
              "src": "6920:108:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5242,
                        "name": "arbitrator_question_fees",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4955,
                        "src": "6930:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 5245,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5243,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "6955:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5244,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6955:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6930:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5246,
                      "name": "fee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5237,
                      "src": "6969:3:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6930:42:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5248,
                  "nodeType": "ExpressionStatement",
                  "src": "6930:42:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5250,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "7005:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7005:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5252,
                        "name": "fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5237,
                        "src": "7017:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5249,
                      "name": "LogSetQuestionFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4803,
                      "src": "6987:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6987:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5254,
                  "nodeType": "EmitStatement",
                  "src": "6982:39:14"
                }
              ]
            },
            "documentation": "@notice Function for arbitrator to set an optional per-question fee. \n @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n @param fee The fee to be charged by the arbitrator when a question is asked",
            "id": 5256,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5240,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5239,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "6895:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6895:10:14"
              }
            ],
            "name": "setQuestionFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5237,
                  "name": "fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 5256,
                  "src": "6873:11:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5236,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6873:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6872:13:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6920:0:14"
            },
            "scope": 6970,
            "src": "6849:179:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5303,
              "nodeType": "Block",
              "src": "7497:259:14",
              "statements": [
                {
                  "assignments": [
                    5266
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5266,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5304,
                      "src": "7507:10:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5265,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7507:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5268,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5267,
                    "name": "nextTemplateID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4931,
                    "src": "7520:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7507:27:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5274,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5269,
                        "name": "templates",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4935,
                        "src": "7544:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5271,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5270,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7554:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7544:13:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5272,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9693,
                        "src": "7560:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 5273,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "number",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7560:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7544:28:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5275,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:28:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5285,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5276,
                        "name": "template_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4939,
                        "src": "7582:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
                          "typeString": "mapping(uint256 => bytes32)"
                        }
                      },
                      "id": 5278,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5277,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7598:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7582:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5282,
                              "name": "content",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5258,
                              "src": "7631:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5280,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "7614:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 5281,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7614:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 5283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7614:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 5279,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "7604:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 5284,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7604:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7582:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5286,
                  "nodeType": "ExpressionStatement",
                  "src": "7582:58:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5288,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5266,
                        "src": "7670:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5289,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "7674:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7674:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5291,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5258,
                        "src": "7686:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5287,
                      "name": "LogNewTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4811,
                      "src": "7655:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory)"
                      }
                    },
                    "id": 5292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7655:39:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5293,
                  "nodeType": "EmitStatement",
                  "src": "7650:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5294,
                      "name": "nextTemplateID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4931,
                      "src": "7704:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7728:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 5295,
                          "name": "id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5266,
                          "src": "7721:2:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "7721:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7721:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7704:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5300,
                  "nodeType": "ExpressionStatement",
                  "src": "7704:26:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5301,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5266,
                    "src": "7747:2:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5264,
                  "id": 5302,
                  "nodeType": "Return",
                  "src": "7740:9:14"
                }
              ]
            },
            "documentation": "@notice Create a reusable template, which should be a JSON document.\n Placeholders should use gettext() syntax, eg %s.\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5304,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 5261,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5260,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "7457:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7457:10:14"
              }
            ],
            "name": "createTemplate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5258,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5304,
                  "src": "7432:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5257,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7432:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7431:16:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5263,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5304,
                  "src": "7488:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7488:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7487:9:14"
            },
            "scope": 6970,
            "src": "7408:348:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5336,
              "nodeType": "Block",
              "src": "8893:153:14",
              "statements": [
                {
                  "assignments": [
                    5322
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5322,
                      "name": "template_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5337,
                      "src": "8903:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5321,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8903:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5326,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5324,
                        "name": "content",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5306,
                        "src": "8940:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5323,
                      "name": "createTemplate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5304,
                      "src": "8925:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) returns (uint256)"
                      }
                    },
                    "id": 5325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8925:23:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8903:45:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5328,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5322,
                        "src": "8977:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5329,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5308,
                        "src": "8990:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5330,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5310,
                        "src": "9000:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5331,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5312,
                        "src": "9012:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5332,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5314,
                        "src": "9021:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5333,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5316,
                        "src": "9033:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5327,
                      "name": "askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5414,
                      "src": "8965:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory,address,uint32,uint32,uint256) returns (bytes32)"
                      }
                    },
                    "id": 5334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8965:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5320,
                  "id": 5335,
                  "nodeType": "Return",
                  "src": "8958:81:14"
                }
              ]
            },
            "documentation": "@notice Create a new reusable template and use it to ask a question\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param content The template content\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created template, which is created sequentially.",
            "id": 5337,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createTemplateAndAskQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5306,
                  "name": "content",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8677:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5305,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8677:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5308,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8702:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5307,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8702:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5310,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8719:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5309,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8719:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5312,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8739:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5311,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8739:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5314,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8755:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5313,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8755:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5316,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8774:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5315,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8774:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8667:127:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5319,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "8884:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5318,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8884:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8883:9:14"
            },
            "scope": 6970,
            "src": "8630:416:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5413,
              "nodeType": "Block",
              "src": "10398:536:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5355,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4935,
                            "src": "10417:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5357,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5356,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5339,
                            "src": "10427:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10417:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5358,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10442:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10417:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10445:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5354,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "10409:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10409:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5362,
                  "nodeType": "ExpressionStatement",
                  "src": "10409:58:14"
                },
                {
                  "assignments": [
                    5364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5364,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5414,
                      "src": "10478:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5363,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10478:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5373,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5368,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5339,
                            "src": "10528:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5369,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5347,
                            "src": "10541:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5370,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5341,
                            "src": "10553:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5366,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "10511:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10511:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10511:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5365,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "10501:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10501:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10478:85:14"
                },
                {
                  "assignments": [
                    5375
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5375,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5414,
                      "src": "10573:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5374,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10573:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5387,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5379,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5364,
                            "src": "10622:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5380,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5343,
                            "src": "10636:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5381,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5345,
                            "src": "10648:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5382,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "10657:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5383,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10657:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5384,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5349,
                            "src": "10669:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5377,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "10605:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "10605:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10605:70:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5376,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "10595:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10573:103:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5389,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5375,
                        "src": "10700:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5390,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5364,
                        "src": "10713:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5391,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5343,
                        "src": "10727:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5392,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5345,
                        "src": "10739:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5393,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5347,
                        "src": "10748:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10760:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5388,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5682,
                      "src": "10687:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10687:75:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5396,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:75:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5398,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5375,
                        "src": "10792:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5399,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "10805:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5400,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10805:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5401,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5339,
                        "src": "10817:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5402,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5341,
                        "src": "10830:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5403,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5364,
                        "src": "10840:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5404,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5343,
                        "src": "10854:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5405,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5345,
                        "src": "10866:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5406,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5347,
                        "src": "10875:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5407,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5349,
                        "src": "10887:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5408,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "10894:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5397,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4833,
                      "src": "10777:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10777:121:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5410,
                  "nodeType": "EmitStatement",
                  "src": "10772:126:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5411,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5375,
                    "src": "10916:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5353,
                  "id": 5412,
                  "nodeType": "Return",
                  "src": "10909:18:14"
                }
              ]
            },
            "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
            "id": 5414,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5339,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10192:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10192:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5341,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10213:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5340,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "10213:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5343,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10230:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5342,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10230:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5345,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10250:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5344,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10250:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5347,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10266:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5346,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10266:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5349,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10285:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5348,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10285:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10191:108:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5353,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5352,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5414,
                  "src": "10389:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5351,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10389:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10388:9:14"
            },
            "scope": 6970,
            "src": "10171:763:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5496,
              "nodeType": "Block",
              "src": "12154:581:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5434,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5428,
                        "src": "12187:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5433,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "12165:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12165:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5436,
                  "nodeType": "ExpressionStatement",
                  "src": "12165:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5442,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5438,
                            "name": "templates",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4935,
                            "src": "12213:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                              "typeString": "mapping(uint256 => uint256)"
                            }
                          },
                          "id": 5440,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5439,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5416,
                            "src": "12223:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12213:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12238:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12213:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74656d706c617465206d757374206578697374",
                        "id": 5443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12241:21:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        },
                        "value": "template must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b763f6fbc16e7da696107f42e85f1f46703aa651f9e70e97d489e8899582b16",
                          "typeString": "literal_string \"template must exist\""
                        }
                      ],
                      "id": 5437,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "12205:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12205:58:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5445,
                  "nodeType": "ExpressionStatement",
                  "src": "12205:58:14"
                },
                {
                  "assignments": [
                    5447
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5447,
                      "name": "content_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5497,
                      "src": "12274:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5446,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12274:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5456,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5451,
                            "name": "template_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5416,
                            "src": "12324:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5452,
                            "name": "opening_ts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5424,
                            "src": "12337:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5453,
                            "name": "question",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5418,
                            "src": "12349:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5449,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "12307:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12307:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12307:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5448,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "12297:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12297:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12274:85:14"
                },
                {
                  "assignments": [
                    5458
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5458,
                      "name": "question_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5497,
                      "src": "12369:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5457,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12369:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5470,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5462,
                            "name": "content_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5447,
                            "src": "12418:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5463,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5420,
                            "src": "12432:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5464,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5422,
                            "src": "12444:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5465,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "12453:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5466,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12453:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5467,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5426,
                            "src": "12465:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5460,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "12401:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5461,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12401:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5468,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12401:70:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5459,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "12391:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12391:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12369:103:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5472,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5458,
                        "src": "12496:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5473,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5447,
                        "src": "12509:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5474,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5420,
                        "src": "12523:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5475,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5422,
                        "src": "12535:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5476,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5424,
                        "src": "12544:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5477,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5428,
                        "src": "12556:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5471,
                      "name": "_askQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5682,
                      "src": "12483:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
                      }
                    },
                    "id": 5478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12483:80:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5479,
                  "nodeType": "ExpressionStatement",
                  "src": "12483:80:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5481,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5458,
                        "src": "12593:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5482,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "12606:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12606:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5484,
                        "name": "template_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5416,
                        "src": "12618:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5485,
                        "name": "question",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5418,
                        "src": "12631:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5486,
                        "name": "content_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5447,
                        "src": "12641:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5487,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5420,
                        "src": "12655:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5488,
                        "name": "timeout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5422,
                        "src": "12667:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5489,
                        "name": "opening_ts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5424,
                        "src": "12676:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5490,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5426,
                        "src": "12688:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5491,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "12695:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5480,
                      "name": "LogNewQuestion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4833,
                      "src": "12578:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,string memory,bytes32,address,uint32,uint32,uint256,uint256)"
                      }
                    },
                    "id": 5492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12578:121:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5493,
                  "nodeType": "EmitStatement",
                  "src": "12573:126:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5494,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5458,
                    "src": "12717:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5432,
                  "id": 5495,
                  "nodeType": "Return",
                  "src": "12710:18:14"
                }
              ]
            },
            "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
            "id": 5497,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "askQuestionERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5416,
                  "name": "template_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11932:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5415,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11932:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5418,
                  "name": "question",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11953:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5417,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11953:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5420,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11970:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5419,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11970:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5422,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "11990:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5421,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11990:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5424,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12006:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5423,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12006:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5426,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12025:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5425,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12025:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5428,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12040:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5427,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12040:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11931:124:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5431,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "12145:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5430,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12145:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12144:9:14"
            },
            "scope": 6970,
            "src": "11906:829:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5565,
              "nodeType": "Block",
              "src": "12802:646:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5502,
                      "name": "tokens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5499,
                      "src": "12817:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5503,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12827:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12817:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5507,
                  "nodeType": "IfStatement",
                  "src": "12813:48:14",
                  "trueBody": {
                    "id": 5506,
                    "nodeType": "Block",
                    "src": "12830:31:14",
                    "statements": [
                      {
                        "expression": null,
                        "functionReturnParameters": 5501,
                        "id": 5505,
                        "nodeType": "Return",
                        "src": "12844:7:14"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    5509
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5509,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 5566,
                      "src": "12871:11:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5508,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12871:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5514,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5510,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "12885:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 5513,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5511,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "12895:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5512,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12895:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12885:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12871:35:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5515,
                      "name": "bal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5509,
                      "src": "12990:3:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12996:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12990:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5550,
                  "nodeType": "IfStatement",
                  "src": "12986:258:14",
                  "trueBody": {
                    "id": 5549,
                    "nodeType": "Block",
                    "src": "12999:245:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5518,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5509,
                            "src": "13017:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5519,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5499,
                            "src": "13024:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13017:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 5547,
                          "nodeType": "Block",
                          "src": "13134:100:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5538,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 5533,
                                  "name": "tokens",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5499,
                                  "src": "13152:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5536,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5509,
                                      "src": "13172:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5534,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5499,
                                      "src": "13161:6:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5535,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7043,
                                    "src": "13161:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5537,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13161:15:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13152:24:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5539,
                              "nodeType": "ExpressionStatement",
                              "src": "13152:24:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5545,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5540,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 444,
                                    "src": "13194:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5543,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5541,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9703,
                                      "src": "13204:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5542,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13204:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13194:21:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5544,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13218:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13194:25:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5546,
                              "nodeType": "ExpressionStatement",
                              "src": "13194:25:14"
                            }
                          ]
                        },
                        "id": 5548,
                        "nodeType": "IfStatement",
                        "src": "13013:221:14",
                        "trueBody": {
                          "id": 5532,
                          "nodeType": "Block",
                          "src": "13032:96:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5529,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 5521,
                                    "name": "balanceOf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 444,
                                    "src": "13050:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 5524,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5522,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9703,
                                      "src": "13060:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5523,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "13060:10:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13050:21:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 5527,
                                      "name": "tokens",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5499,
                                      "src": "13082:6:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5525,
                                      "name": "bal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5509,
                                      "src": "13074:3:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5526,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7043,
                                    "src": "13074:7:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 5528,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13074:15:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13050:39:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5530,
                              "nodeType": "ExpressionStatement",
                              "src": "13050:39:14"
                            },
                            {
                              "expression": null,
                              "functionReturnParameters": 5501,
                              "id": 5531,
                              "nodeType": "Return",
                              "src": "13107:7:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5554,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9703,
                              "src": "13328:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13328:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5557,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9752,
                                "src": "13348:4:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6970",
                                  "typeString": "contract RealitioERC20"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_RealitioERC20_$6970",
                                  "typeString": "contract RealitioERC20"
                                }
                              ],
                              "id": 5556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13340:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 5558,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13340:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5559,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5499,
                            "src": "13355:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5552,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 440,
                            "src": "13309:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC20_$1352",
                              "typeString": "contract IERC20"
                            }
                          },
                          "id": 5553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "transferFrom",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1335,
                          "src": "13309:18:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,address,uint256) external returns (bool)"
                          }
                        },
                        "id": 5560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13309:53:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
                        "id": 5561,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13364:59:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        },
                        "value": "Transfer of tokens failed, insufficient approved balance?"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
                          "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
                        }
                      ],
                      "id": 5551,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13301:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13301:123:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5563,
                  "nodeType": "ExpressionStatement",
                  "src": "13301:123:14"
                },
                {
                  "expression": null,
                  "functionReturnParameters": 5501,
                  "id": 5564,
                  "nodeType": "Return",
                  "src": "13434:7:14"
                }
              ]
            },
            "documentation": null,
            "id": 5566,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_deductTokensOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5499,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5566,
                  "src": "12772:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12772:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12771:16:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5501,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12802:0:14"
            },
            "scope": 6970,
            "src": "12741:707:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5681,
              "nodeType": "Block",
              "src": "13641:1316:14",
              "statements": [
                {
                  "assignments": [
                    5585
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5585,
                      "name": "bounty",
                      "nodeType": "VariableDeclaration",
                      "scope": 5682,
                      "src": "13652:14:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5584,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5587,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 5586,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5578,
                    "src": "13669:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13652:23:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5589,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5574,
                          "src": "13776:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13786:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "13776:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d75737420626520706f736974697665",
                        "id": 5592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13789:26:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        },
                        "value": "timeout must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_21a6e8d6041a43652989cb6df398a64082bcb4cf008fb5cf0deefa1dfb00eaf0",
                          "typeString": "literal_string \"timeout must be positive\""
                        }
                      ],
                      "id": 5588,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13768:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13768:48:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5594,
                  "nodeType": "ExpressionStatement",
                  "src": "13768:48:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5596,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5574,
                          "src": "13835:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333635",
                          "id": 5597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13845:8:14",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "365"
                        },
                        "src": "13835:18:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
                        "id": 5599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13855:36:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        },
                        "value": "timeout must be less than 365 days"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d41c7cd8b163218b0d4e0b8fc4fae3eb6e53b50e3a40bd3b56ca7bc1b684a1e9",
                          "typeString": "literal_string \"timeout must be less than 365 days\""
                        }
                      ],
                      "id": 5595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13827:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13827:65:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5601,
                  "nodeType": "ExpressionStatement",
                  "src": "13827:65:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5603,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5572,
                          "src": "13911:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5604,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4783,
                          "src": "13925:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "13911:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d75737420626520736574",
                        "id": 5606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13939:24:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        },
                        "value": "arbitrator must be set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_41e3ac7303a8b1456ede85d1facc68e58dc10ca71a9ec24a5bab787499ac2a73",
                          "typeString": "literal_string \"arbitrator must be set\""
                        }
                      ],
                      "id": 5602,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "13903:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13903:61:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5608,
                  "nodeType": "ExpressionStatement",
                  "src": "13903:61:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5609,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "14356:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "14356:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5611,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5572,
                      "src": "14370:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14356:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5645,
                  "nodeType": "IfStatement",
                  "src": "14352:327:14",
                  "trueBody": {
                    "id": 5644,
                    "nodeType": "Block",
                    "src": "14382:297:14",
                    "statements": [
                      {
                        "assignments": [
                          5614
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5614,
                            "name": "question_fee",
                            "nodeType": "VariableDeclaration",
                            "scope": 5682,
                            "src": "14396:20:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5613,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "14396:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5618,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5615,
                            "name": "arbitrator_question_fees",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4955,
                            "src": "14419:24:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 5617,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5616,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5572,
                            "src": "14444:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14419:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14396:59:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 5622,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 5620,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5585,
                                "src": "14477:6:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 5621,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14487:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "14477:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546f6b656e732070726f7669646564206d75737420636f766572207175657374696f6e20666565",
                              "id": 5623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "14501:41:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              },
                              "value": "Tokens provided must cover question fee"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_ed62e475d1700c11321de4f059b593d66013ce61fc0c18f9061af3ba4070ff86",
                                "typeString": "literal_string \"Tokens provided must cover question fee\""
                              }
                            ],
                            "id": 5619,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              9706,
                              9707
                            ],
                            "referencedDeclaration": 9707,
                            "src": "14469:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14469:74:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5625,
                        "nodeType": "ExpressionStatement",
                        "src": "14469:74:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5631,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 5626,
                            "name": "bounty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5585,
                            "src": "14558:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5629,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14578:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 5627,
                                "name": "bounty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5585,
                                "src": "14567:6:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5628,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7043,
                              "src": "14567:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5630,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14567:24:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14558:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5632,
                        "nodeType": "ExpressionStatement",
                        "src": "14558:33:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5633,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 444,
                              "src": "14605:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 5635,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5634,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5572,
                              "src": "14615:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14605:21:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5640,
                                "name": "question_fee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5614,
                                "src": "14655:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5636,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 444,
                                  "src": "14629:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 5638,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5637,
                                  "name": "arbitrator",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5572,
                                  "src": "14639:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "14629:21:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5639,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7067,
                              "src": "14629:25:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5641,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14629:39:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14605:63:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5643,
                        "nodeType": "ExpressionStatement",
                        "src": "14605:63:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5646,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14689:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5648,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5647,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14699:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14689:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5649,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "content_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4895,
                      "src": "14689:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5650,
                      "name": "content_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5570,
                      "src": "14727:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14689:50:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5652,
                  "nodeType": "ExpressionStatement",
                  "src": "14689:50:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5653,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14749:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5655,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5654,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14759:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14749:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "arbitrator",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4897,
                      "src": "14749:33:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5657,
                      "name": "arbitrator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5572,
                      "src": "14785:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14749:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5659,
                  "nodeType": "ExpressionStatement",
                  "src": "14749:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5660,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14805:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5662,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5661,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14815:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14805:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5663,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "opening_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4899,
                      "src": "14805:33:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5664,
                      "name": "opening_ts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5576,
                      "src": "14841:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14805:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5666,
                  "nodeType": "ExpressionStatement",
                  "src": "14805:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5667,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14861:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5669,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5668,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14871:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14861:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5670,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4901,
                      "src": "14861:30:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5671,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5574,
                      "src": "14894:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "14861:40:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5673,
                  "nodeType": "ExpressionStatement",
                  "src": "14861:40:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5679,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5674,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "14911:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5676,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5675,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5568,
                          "src": "14921:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14911:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5677,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4907,
                      "src": "14911:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5678,
                      "name": "bounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5585,
                      "src": "14943:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14911:38:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5680,
                  "nodeType": "ExpressionStatement",
                  "src": "14911:38:14"
                }
              ]
            },
            "documentation": null,
            "id": 5682,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5581,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5568,
                    "src": "13615:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5582,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5580,
                  "name": "stateNotCreated",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4992,
                  "src": "13599:15:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13599:28:14"
              }
            ],
            "name": "_askQuestion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5568,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13476:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5567,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13476:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5570,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13497:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5569,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13497:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5572,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13519:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5571,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13519:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5574,
                  "name": "timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13539:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5573,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13539:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5576,
                  "name": "opening_ts",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13555:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 5575,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13555:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5578,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5682,
                  "src": "13574:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13574:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13475:114:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5583,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13641:0:14"
            },
            "scope": 6970,
            "src": "13454:1503:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5720,
              "nodeType": "Block",
              "src": "15370:227:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5693,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5686,
                        "src": "15402:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5692,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "15380:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15380:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5695,
                  "nodeType": "ExpressionStatement",
                  "src": "15380:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5696,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "15419:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5698,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5697,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5684,
                          "src": "15429:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15419:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5699,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bounty",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4907,
                      "src": "15419:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5705,
                          "name": "tokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5686,
                          "src": "15485:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5700,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "15451:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 5702,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5701,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5684,
                              "src": "15461:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15451:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 5703,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bounty",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4907,
                          "src": "15451:29:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "15451:33:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15451:41:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15419:73:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5708,
                  "nodeType": "ExpressionStatement",
                  "src": "15419:73:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5710,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5684,
                        "src": "15527:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5711,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5686,
                        "src": "15540:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5712,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "15548:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5714,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5713,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5684,
                            "src": "15558:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "15548:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5715,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "bounty",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4907,
                        "src": "15548:29:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5716,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "15579:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15579:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5709,
                      "name": "LogFundAnswerBounty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4843,
                      "src": "15507:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,uint256,uint256,address)"
                      }
                    },
                    "id": 5718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15507:83:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5719,
                  "nodeType": "EmitStatement",
                  "src": "15502:88:14"
                }
              ]
            },
            "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
            "id": 5721,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5689,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5684,
                    "src": "15344:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5690,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5688,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "15334:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15334:22:14"
              }
            ],
            "name": "fundAnswerBountyERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5684,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5721,
                  "src": "15288:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5683,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15288:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5686,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5721,
                  "src": "15309:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15309:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15287:37:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5691,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15370:0:14"
            },
            "scope": 6970,
            "src": "15257:340:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5765,
              "nodeType": "Block",
              "src": "16402:206:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5744,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5729,
                        "src": "16434:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5743,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "16412:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16412:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5746,
                  "nodeType": "ExpressionStatement",
                  "src": "16412:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5748,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5723,
                        "src": "16471:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5749,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5725,
                        "src": "16484:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5750,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "16492:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5751,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16492:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5752,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5729,
                        "src": "16504:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 5753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16512:5:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5747,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "16451:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5754,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16451:67:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5755,
                  "nodeType": "ExpressionStatement",
                  "src": "16451:67:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5757,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5723,
                        "src": "16549:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5758,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5725,
                        "src": "16562:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 5759,
                            "name": "questions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4943,
                            "src": "16570:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                            }
                          },
                          "id": 5761,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5760,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5723,
                            "src": "16580:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16570:22:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Question_$4914_storage",
                            "typeString": "struct RealitioERC20.Question storage ref"
                          }
                        },
                        "id": 5762,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timeout",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4901,
                        "src": "16570:30:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 5756,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6055,
                      "src": "16528:20:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 5763,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16528:73:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5764,
                  "nodeType": "ExpressionStatement",
                  "src": "16528:73:14"
                }
              ]
            },
            "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
            "id": 5766,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5732,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16262:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5733,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5731,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "16252:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16252:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5735,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16298:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5736,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5729,
                    "src": "16311:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5737,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5734,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5169,
                  "src": "16283:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16283:35:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5739,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5723,
                    "src": "16362:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5740,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5727,
                    "src": "16375:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5741,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5738,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "16327:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16327:61:14"
              }
            ],
            "name": "submitAnswerERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5723,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16168:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16168:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5725,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16189:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5724,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16189:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5727,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16205:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5726,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16205:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5729,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5766,
                  "src": "16227:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5728,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16227:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16167:75:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5742,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16402:0:14"
            },
            "scope": 6970,
            "src": "16141:467:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5804,
              "nodeType": "Block",
              "src": "16889:306:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5779,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5774,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "16907:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5776,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5775,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5770,
                              "src": "16919:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "16907:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5777,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4916,
                          "src": "16907:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5778,
                          "name": "COMMITMENT_NON_EXISTENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4794,
                          "src": "16947:23:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16907:63:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
                        "id": 5780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16972:35:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        },
                        "value": "commitment must not already exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c2878907358507a98137b5e459ef2a610f3aa0fc728f22215b4a187d8849acf0",
                          "typeString": "literal_string \"commitment must not already exist\""
                        }
                      ],
                      "id": 5773,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "16899:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5781,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16899:109:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5782,
                  "nodeType": "ExpressionStatement",
                  "src": "16899:109:14"
                },
                {
                  "assignments": [
                    5784
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5784,
                      "name": "commitment_timeout",
                      "nodeType": "VariableDeclaration",
                      "scope": 5805,
                      "src": "17019:25:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 5783,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17019:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5791,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 5790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5785,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "17047:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5787,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5786,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5768,
                          "src": "17057:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17047:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5788,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeout",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4901,
                      "src": "17047:30:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 5789,
                      "name": "COMMITMENT_TIMEOUT_RATIO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4797,
                      "src": "17080:24:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17047:57:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17019:85:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5792,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "17114:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5794,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5793,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5770,
                          "src": "17126:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17114:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5795,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "reveal_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4916,
                      "src": "17114:36:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5800,
                          "name": "commitment_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5784,
                          "src": "17169:18:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5797,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "17160:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "17153:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17153:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 5799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7094,
                        "src": "17153:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 5801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17153:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "17114:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 5803,
                  "nodeType": "ExpressionStatement",
                  "src": "17114:74:14"
                }
              ]
            },
            "documentation": null,
            "id": 5805,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_storeCommitment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5768,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "16827:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16827:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5770,
                  "name": "commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "16848:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5769,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16848:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16826:44:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16889:0:14"
            },
            "scope": 6970,
            "src": "16801:394:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5868,
              "nodeType": "Block",
              "src": "18471:361:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5830,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5815,
                        "src": "18504:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5829,
                      "name": "_deductTokensOrRevert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5566,
                      "src": "18482:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18482:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5832,
                  "nodeType": "ExpressionStatement",
                  "src": "18482:29:14"
                },
                {
                  "assignments": [
                    5834
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5834,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5869,
                      "src": "18522:21:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5833,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "18522:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5843,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5838,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5807,
                            "src": "18573:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5839,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5809,
                            "src": "18586:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5840,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5815,
                            "src": "18599:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5836,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "18556:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18556:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18556:50:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5835,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "18546:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18546:61:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18522:85:14"
                },
                {
                  "assignments": [
                    5845
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5845,
                      "name": "answerer",
                      "nodeType": "VariableDeclaration",
                      "scope": 5869,
                      "src": "18617:16:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5844,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "18617:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5854,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5846,
                            "name": "_answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5813,
                            "src": "18637:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "18650:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "18637:25:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 5849,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "18636:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 5852,
                      "name": "_answerer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5813,
                      "src": "18679:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "18636:52:14",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5850,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9703,
                        "src": "18666:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 5851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18666:10:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18617:71:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5856,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5807,
                        "src": "18716:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5857,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5834,
                        "src": "18729:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5855,
                      "name": "_storeCommitment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5805,
                      "src": "18699:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18699:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5859,
                  "nodeType": "ExpressionStatement",
                  "src": "18699:44:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5861,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5807,
                        "src": "18773:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5862,
                        "name": "commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5834,
                        "src": "18786:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5863,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5845,
                        "src": "18801:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5864,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5815,
                        "src": "18811:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 5865,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18819:4:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5860,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "18753:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 5866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18753:71:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5867,
                  "nodeType": "ExpressionStatement",
                  "src": "18753:71:14"
                }
              ]
            },
            "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
            "id": 5869,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5818,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18331:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5819,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5817,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "18321:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18321:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5821,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18367:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5822,
                    "name": "tokens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5815,
                    "src": "18380:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5823,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5820,
                  "name": "bondMustDouble",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5169,
                  "src": "18352:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18352:35:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5825,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5807,
                    "src": "18431:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 5826,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5811,
                    "src": "18444:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5827,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5824,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "18396:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "18396:61:14"
              }
            ],
            "name": "submitAnswerCommitmentERC20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5807,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18213:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18213:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5809,
                  "name": "answer_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18234:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18234:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5811,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18255:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5810,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18255:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5813,
                  "name": "_answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18277:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5812,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18277:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5815,
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "scope": 5869,
                  "src": "18296:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5814,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18296:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18212:99:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5828,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18471:0:14"
            },
            "scope": 6970,
            "src": "18176:656:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5966,
              "nodeType": "Block",
              "src": "19966:746:14",
              "statements": [
                {
                  "assignments": [
                    5884
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5884,
                      "name": "answer_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 5967,
                      "src": "19977:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5883,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "19977:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5892,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5888,
                            "name": "answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5873,
                            "src": "20026:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5889,
                            "name": "nonce",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5875,
                            "src": "20034:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5886,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20009:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5887,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20009:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20009:31:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5885,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "19999:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19999:42:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19977:64:14"
                },
                {
                  "assignments": [
                    5894
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5894,
                      "name": "commitment_id",
                      "nodeType": "VariableDeclaration",
                      "scope": 5967,
                      "src": "20051:21:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5893,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20051:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5903,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5898,
                            "name": "question_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5871,
                            "src": "20102:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5899,
                            "name": "answer_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5884,
                            "src": "20115:11:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5900,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5877,
                            "src": "20128:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5896,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20085:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20085:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5901,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20085:48:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5895,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "20075:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20075:59:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20051:83:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "20153:39:14",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5905,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "20154:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5907,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5906,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5894,
                              "src": "20166:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20154:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5908,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "is_revealed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4918,
                          "src": "20154:38:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
                        "id": 5910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20194:44:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        },
                        "value": "commitment must not have been revealed yet"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6dc39b75299a8c5d94f5d4fe4d23fcb2fa3f298c414cad40577eebdbf4fb5bba",
                          "typeString": "literal_string \"commitment must not have been revealed yet\""
                        }
                      ],
                      "id": 5904,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "20145:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20145:94:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5912,
                  "nodeType": "ExpressionStatement",
                  "src": "20145:94:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 5921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 5914,
                              "name": "commitments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4951,
                              "src": "20257:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                              }
                            },
                            "id": 5916,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 5915,
                              "name": "commitment_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5894,
                              "src": "20269:13:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20257:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                              "typeString": "struct RealitioERC20.Commitment storage ref"
                            }
                          },
                          "id": 5917,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "reveal_ts",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4916,
                          "src": "20257:36:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5919,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "20303:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5918,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20296:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 5920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20296:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "20257:50:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
                        "id": 5922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20309:38:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        },
                        "value": "reveal deadline must not have passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c0aef0f9c54528968b7d0aecff5e54568fd8cfc861f8c854eb9d7453b7f722c0",
                          "typeString": "literal_string \"reveal deadline must not have passed\""
                        }
                      ],
                      "id": 5913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "20249:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20249:99:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5924,
                  "nodeType": "ExpressionStatement",
                  "src": "20249:99:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5925,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "20359:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5927,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5926,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5894,
                          "src": "20371:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20359:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5928,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealed_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4920,
                      "src": "20359:42:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5929,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5873,
                      "src": "20404:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20359:51:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5931,
                  "nodeType": "ExpressionStatement",
                  "src": "20359:51:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5932,
                          "name": "commitments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4951,
                          "src": "20420:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                          }
                        },
                        "id": 5934,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5933,
                          "name": "commitment_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5894,
                          "src": "20432:13:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20420:26:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                          "typeString": "struct RealitioERC20.Commitment storage ref"
                        }
                      },
                      "id": 5935,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_revealed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4918,
                      "src": "20420:38:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5936,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20461:4:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "20420:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5938,
                  "nodeType": "ExpressionStatement",
                  "src": "20420:45:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5939,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5877,
                      "src": "20480:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 5940,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "20488:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 5942,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 5941,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5871,
                          "src": "20498:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20488:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 5943,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4913,
                      "src": "20488:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20480:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5955,
                  "nodeType": "IfStatement",
                  "src": "20476:139:14",
                  "trueBody": {
                    "id": 5954,
                    "nodeType": "Block",
                    "src": "20517:98:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5946,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5871,
                              "src": "20552:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5947,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5873,
                              "src": "20565:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5948,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4943,
                                  "src": "20573:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 5950,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5949,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5871,
                                  "src": "20583:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20573:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4914_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 5951,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeout",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4901,
                              "src": "20573:30:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 5945,
                            "name": "_updateCurrentAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6055,
                            "src": "20531:20:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                              "typeString": "function (bytes32,bytes32,uint32)"
                            }
                          },
                          "id": 5952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20531:73:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5953,
                        "nodeType": "ExpressionStatement",
                        "src": "20531:73:14"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5957,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5871,
                        "src": "20646:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5958,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9703,
                          "src": "20659:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5959,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "20659:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5960,
                        "name": "answer_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5884,
                        "src": "20671:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5961,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5873,
                        "src": "20684:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5962,
                        "name": "nonce",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5875,
                        "src": "20692:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5963,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5877,
                        "src": "20699:4:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5956,
                      "name": "LogAnswerReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4873,
                      "src": "20630:15:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32,bytes32,uint256,uint256)"
                      }
                    },
                    "id": 5964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20630:74:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5965,
                  "nodeType": "EmitStatement",
                  "src": "20625:79:14"
                }
              ]
            },
            "documentation": "@notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n Updates the current answer unless someone has since supplied a new answer with a higher bond\n msg.sender is intentionally not restricted to the user who originally sent the commitment; \n For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n @param question_id The ID of the question\n @param answer The answer, encoded as bytes32\n @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n @param bond The bond that you paid in your submitAnswerCommitment() transaction",
            "id": 5967,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5880,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5871,
                    "src": "19940:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5881,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5879,
                  "name": "stateOpenOrPendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5127,
                  "src": "19910:29:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "19910:42:14"
              }
            ],
            "name": "submitAnswerReveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5871,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19835:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5870,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19835:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5873,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19856:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19856:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5875,
                  "name": "nonce",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19872:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5874,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19872:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5877,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 5967,
                  "src": "19887:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5876,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19887:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19834:66:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5882,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19966:0:14"
            },
            "scope": 6970,
            "src": "19807:905:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6025,
              "nodeType": "Block",
              "src": "20872:524:14",
              "statements": [
                {
                  "assignments": [
                    5981
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5981,
                      "name": "new_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6026,
                      "src": "20882:24:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5980,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "20882:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5985,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4943,
                                "src": "20936:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 5987,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5986,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5969,
                                "src": "20946:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20936:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4914_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 5988,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "history_hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4911,
                            "src": "20936:35:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5989,
                            "name": "answer_or_commitment_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5971,
                            "src": "20973:23:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5990,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5975,
                            "src": "20998:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5991,
                            "name": "answerer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5973,
                            "src": "21004:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5992,
                            "name": "is_commitment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5977,
                            "src": "21014:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5983,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9690,
                            "src": "20919:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5984,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20919:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5993,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20919:109:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5982,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9697,
                      "src": "20909:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20909:120:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20882:147:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5996,
                      "name": "bond",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5975,
                      "src": "21137:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21144:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21137:8:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6007,
                  "nodeType": "IfStatement",
                  "src": "21133:73:14",
                  "trueBody": {
                    "id": 6006,
                    "nodeType": "Block",
                    "src": "21147:59:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6004,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 5999,
                                "name": "questions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4943,
                                "src": "21161:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                }
                              },
                              "id": 6001,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6000,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5969,
                                "src": "21171:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21161:22:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Question_$4914_storage",
                                "typeString": "struct RealitioERC20.Question storage ref"
                              }
                            },
                            "id": 6002,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4913,
                            "src": "21161:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6003,
                            "name": "bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5975,
                            "src": "21191:4:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21161:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6005,
                        "nodeType": "ExpressionStatement",
                        "src": "21161:34:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6008,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21215:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6010,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6009,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5969,
                          "src": "21225:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21215:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6011,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4911,
                      "src": "21215:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6012,
                      "name": "new_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5981,
                      "src": "21253:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21215:54:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6014,
                  "nodeType": "ExpressionStatement",
                  "src": "21215:54:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6016,
                        "name": "answer_or_commitment_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5971,
                        "src": "21298:23:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6017,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5969,
                        "src": "21323:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6018,
                        "name": "new_history_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5981,
                        "src": "21336:16:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6019,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5973,
                        "src": "21354:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6020,
                        "name": "bond",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5975,
                        "src": "21364:4:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6021,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9705,
                        "src": "21370:3:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6022,
                        "name": "is_commitment",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5977,
                        "src": "21375:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6015,
                      "name": "LogNewAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4859,
                      "src": "21285:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,address,uint256,uint256,bool)"
                      }
                    },
                    "id": 6023,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21285:104:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6024,
                  "nodeType": "EmitStatement",
                  "src": "21280:109:14"
                }
              ]
            },
            "documentation": null,
            "id": 6026,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAnswerToHistory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5969,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20747:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5968,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20747:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5971,
                  "name": "answer_or_commitment_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20768:31:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5970,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20768:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5973,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20801:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5972,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "20801:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5975,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20819:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5974,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20819:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5977,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6026,
                  "src": "20833:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5976,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20833:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20746:106:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5979,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20872:0:14"
            },
            "scope": 6970,
            "src": "20718:678:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6054,
              "nodeType": "Block",
              "src": "21503:136:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6035,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21513:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6037,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6036,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6028,
                          "src": "21523:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21513:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6038,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "best_answer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4909,
                      "src": "21513:34:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6039,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6030,
                      "src": "21550:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21513:43:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6041,
                  "nodeType": "ExpressionStatement",
                  "src": "21513:43:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6042,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "21566:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6044,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6043,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6028,
                          "src": "21576:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21566:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalize_ts",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4903,
                      "src": "21566:34:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6050,
                          "name": "timeout_secs",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6032,
                          "src": "21619:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6047,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9705,
                              "src": "21610:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "21603:6:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": "uint32"
                          },
                          "id": 6048,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21603:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "id": 6049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7094,
                        "src": "21603:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$",
                          "typeString": "function (uint32,uint32) pure returns (uint32)"
                        }
                      },
                      "id": 6051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21603:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "21566:66:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 6053,
                  "nodeType": "ExpressionStatement",
                  "src": "21566:66:14"
                }
              ]
            },
            "documentation": null,
            "id": 6055,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateCurrentAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6028,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21432:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6027,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21432:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6030,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21453:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6029,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21453:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6032,
                  "name": "timeout_secs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6055,
                  "src": "21469:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6031,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21431:58:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6034,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21503:0:14"
            },
            "scope": 6970,
            "src": "21402:237:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6096,
              "nodeType": "Block",
              "src": "22369:257:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6075,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "22387:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6077,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6076,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6057,
                              "src": "22397:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "22387:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6078,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4913,
                          "src": "22387:27:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "22417:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "22387:31:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
                        "id": 6081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22420:68:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        },
                        "value": "Question must already have an answer when arbitration is requested"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7fdaca9206a1cc3ce5480327eab94eaea78ffd196334cab0e144479eb0ad45d4",
                          "typeString": "literal_string \"Question must already have an answer when arbitration is requested\""
                        }
                      ],
                      "id": 6074,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "22379:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22379:110:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6083,
                  "nodeType": "ExpressionStatement",
                  "src": "22379:110:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6084,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "22499:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6086,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6085,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6057,
                          "src": "22509:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22499:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6087,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4905,
                      "src": "22499:45:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 6088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22547:4:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "22499:52:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6090,
                  "nodeType": "ExpressionStatement",
                  "src": "22499:52:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6092,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6057,
                        "src": "22596:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6093,
                        "name": "requester",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6059,
                        "src": "22609:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6091,
                      "name": "LogNotifyOfArbitrationRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4879,
                      "src": "22566:29:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 6094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22566:53:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6095,
                  "nodeType": "EmitStatement",
                  "src": "22561:58:14"
                }
              ]
            },
            "documentation": "@notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n @param question_id The ID of the question\n @param requester The account that requested arbitration\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.",
            "id": 6097,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6064,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22242:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6065,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6063,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4972,
                  "src": "22227:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22227:27:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6067,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22273:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6068,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6066,
                  "name": "stateOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5057,
                  "src": "22263:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22263:22:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6070,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6057,
                    "src": "22329:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 6071,
                    "name": "max_previous",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6061,
                    "src": "22342:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6072,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6069,
                  "name": "previousBondMustNotBeatMaxPrevious",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5192,
                  "src": "22294:34:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
                    "typeString": "modifier (bytes32,uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "22294:61:14"
              }
            ],
            "name": "notifyOfArbitrationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6057,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22156:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6056,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22156:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6059,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22177:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6058,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22177:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6061,
                  "name": "max_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 6097,
                  "src": "22196:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6060,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22196:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22155:62:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6073,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22369:0:14"
            },
            "scope": 6970,
            "src": "22120:506:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6145,
              "nodeType": "Block",
              "src": "23406:316:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6113,
                          "name": "answerer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6103,
                          "src": "23425:8:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 6114,
                          "name": "NULL_ADDRESS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4783,
                          "src": "23437:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "23425:24:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616e737765726572206d7573742062652070726f7669646564",
                        "id": 6116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23451:27:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        },
                        "value": "answerer must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b2034904ed959e3f06daceb4dada259b4f13c4f11a1b4edcc62492a9fc76ce84",
                          "typeString": "literal_string \"answerer must be provided\""
                        }
                      ],
                      "id": 6112,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "23417:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23417:62:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6118,
                  "nodeType": "ExpressionStatement",
                  "src": "23417:62:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6120,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23506:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6121,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23519:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6119,
                      "name": "LogFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4885,
                      "src": "23494:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 6122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23494:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6123,
                  "nodeType": "EmitStatement",
                  "src": "23489:37:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6124,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "23537:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6126,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6125,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6099,
                          "src": "23547:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23537:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6127,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "is_pending_arbitration",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4905,
                      "src": "23537:45:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 6128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23585:5:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "23537:53:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6130,
                  "nodeType": "ExpressionStatement",
                  "src": "23537:53:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6132,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23620:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6133,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23633:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6134,
                        "name": "answerer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6103,
                        "src": "23641:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23651:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 6136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23654:5:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6131,
                      "name": "_addAnswerToHistory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "23600:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address,uint256,bool)"
                      }
                    },
                    "id": 6137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23600:60:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6138,
                  "nodeType": "ExpressionStatement",
                  "src": "23600:60:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6140,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6099,
                        "src": "23691:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6141,
                        "name": "answer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "23704:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6142,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "23712:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 6139,
                      "name": "_updateCurrentAnswer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6055,
                      "src": "23670:20:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
                        "typeString": "function (bytes32,bytes32,uint32)"
                      }
                    },
                    "id": 6143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23670:44:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6144,
                  "nodeType": "ExpressionStatement",
                  "src": "23670:44:14"
                }
              ]
            },
            "documentation": "@notice Submit the answer for a question, for use by the arbitrator.\n @dev Doesn't require (or allow) a bond.\n If the current final answer is correct, the account should be whoever submitted it.\n If the current final answer is wrong, the account should be whoever paid for arbitration.\n However, the answerer stipulations are not enforced by the contract.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param answerer The account credited with this answer for the purpose of bond claims",
            "id": 6146,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6106,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6099,
                    "src": "23335:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6107,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6105,
                  "name": "onlyArbitrator",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4972,
                  "src": "23320:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23320:27:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6109,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6099,
                    "src": "23380:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6110,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6108,
                  "name": "statePendingArbitration",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5071,
                  "src": "23356:23:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "23356:36:14"
              }
            ],
            "name": "submitAnswerByArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6099,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23256:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6098,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23256:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6101,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23277:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6100,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23277:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6103,
                  "name": "answerer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6146,
                  "src": "23293:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6102,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23293:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23255:55:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6111,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23406:0:14"
            },
            "scope": 6970,
            "src": "23222:500:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6179,
              "nodeType": "Block",
              "src": "23974:201:14",
              "statements": [
                {
                  "assignments": [
                    6154
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6154,
                      "name": "finalize_ts",
                      "nodeType": "VariableDeclaration",
                      "scope": 6180,
                      "src": "23984:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      },
                      "typeName": {
                        "id": 6153,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23984:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6159,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6155,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24005:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6157,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6156,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6148,
                        "src": "24015:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24005:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6158,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "24005:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23984:55:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6164,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "24058:46:14",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6160,
                                  "name": "questions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4943,
                                  "src": "24059:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                  }
                                },
                                "id": 6162,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6161,
                                  "name": "question_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6148,
                                  "src": "24069:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "24059:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Question_$4914_storage",
                                  "typeString": "struct RealitioERC20.Question storage ref"
                                }
                              },
                              "id": 6163,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "is_pending_arbitration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4905,
                              "src": "24059:45:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 6167,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6165,
                                  "name": "finalize_ts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6154,
                                  "src": "24109:11:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 6166,
                                  "name": "UNANSWERED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4791,
                                  "src": "24123:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "24109:24:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 6168,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "24108:26:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "24058:76:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 6174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6170,
                                "name": "finalize_ts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6154,
                                "src": "24139:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6172,
                                    "name": "now",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9705,
                                    "src": "24161:3:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6171,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "24154:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint32_$",
                                    "typeString": "type(uint32)"
                                  },
                                  "typeName": "uint32"
                                },
                                "id": 6173,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24154:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "24139:26:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 6175,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "24138:28:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24058:108:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 6177,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24056:112:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6152,
                  "id": 6178,
                  "nodeType": "Return",
                  "src": "24049:119:14"
                }
              ]
            },
            "documentation": "@notice Report whether the answer to the specified question is finalized\n @param question_id The ID of the question\n @return Return true if finalized",
            "id": 6180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6148,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6180,
                  "src": "23921:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6147,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23921:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23920:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6151,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6180,
                  "src": "23968:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6150,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23968:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23967:6:14"
            },
            "scope": 6970,
            "src": "23900:275:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6195,
              "nodeType": "Block",
              "src": "24508:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6190,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24525:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6192,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6191,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6182,
                        "src": "24535:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24525:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6193,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "24525:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6189,
                  "id": 6194,
                  "nodeType": "Return",
                  "src": "24518:41:14"
                }
              ]
            },
            "documentation": "@notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6185,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6182,
                    "src": "24459:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6186,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6184,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "24444:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24444:27:14"
              }
            ],
            "name": "getFinalAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6182,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "24414:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6181,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24414:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24413:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6188,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "24499:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6187,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24499:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24498:9:14"
            },
            "scope": 6970,
            "src": "24390:176:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6211,
              "nodeType": "Block",
              "src": "24881:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6206,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "24898:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6208,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6207,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6198,
                        "src": "24908:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24898:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6209,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "24898:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6205,
                  "id": 6210,
                  "nodeType": "Return",
                  "src": "24891:41:14"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, or revert if there isn't one\n @param question_id The ID of the question\n @return The answer formatted as a bytes32",
            "id": 6212,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6201,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6198,
                    "src": "24832:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6202,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6200,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "24817:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "24817:27:14"
              }
            ],
            "name": "resultFor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6198,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "24787:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24787:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24786:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6204,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "24872:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6203,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24872:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24871:9:14"
            },
            "scope": 6970,
            "src": "24768:171:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6275,
              "nodeType": "Block",
              "src": "25917:427:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6236,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6231,
                          "name": "content_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6216,
                          "src": "25935:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6232,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "25951:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6234,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6233,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "25961:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "25951:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6235,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "content_hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4895,
                          "src": "25951:35:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "25935:51:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74656e742068617368206d757374206d61746368",
                        "id": 6237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25988:25:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        },
                        "value": "content hash must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1ab4f91b91ff887ba4101461ee7fdff8a9550df020c832d7174034a04b833c71",
                          "typeString": "literal_string \"content hash must match\""
                        }
                      ],
                      "id": 6230,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "25927:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25927:87:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6239,
                  "nodeType": "ExpressionStatement",
                  "src": "25927:87:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6246,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6241,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6218,
                          "src": "26032:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6242,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26046:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6244,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6243,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26056:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26046:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6245,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "arbitrator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4897,
                          "src": "26046:33:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "26032:47:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61726269747261746f72206d757374206d61746368",
                        "id": 6247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26081:23:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        },
                        "value": "arbitrator must match"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e14333e0b7159d63d81a1f747c3418d619023485dd483dee8ea5dfb57b0ff723",
                          "typeString": "literal_string \"arbitrator must match\""
                        }
                      ],
                      "id": 6240,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26024:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26024:81:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6249,
                  "nodeType": "ExpressionStatement",
                  "src": "26024:81:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 6256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6251,
                          "name": "min_timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6220,
                          "src": "26123:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6252,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26138:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6254,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6253,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26148:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26138:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6255,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "timeout",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4901,
                          "src": "26138:30:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "src": "26123:45:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
                        "id": 6257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26170:29:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        },
                        "value": "timeout must be long enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc60de11d8ba89bb648c5bc8147e6f8669fe77735adef82b63fc28eef3d7dfeb",
                          "typeString": "literal_string \"timeout must be long enough\""
                        }
                      ],
                      "id": 6250,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26115:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26115:85:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6259,
                  "nodeType": "ExpressionStatement",
                  "src": "26115:85:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6266,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6261,
                          "name": "min_bond",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6222,
                          "src": "26218:8:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6262,
                              "name": "questions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4943,
                              "src": "26230:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                              }
                            },
                            "id": 6264,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6263,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6214,
                              "src": "26240:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "26230:22:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Question_$4914_storage",
                              "typeString": "struct RealitioERC20.Question storage ref"
                            }
                          },
                          "id": 6265,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bond",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4913,
                          "src": "26230:27:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "26218:39:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
                        "id": 6267,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26259:26:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        },
                        "value": "bond must be high enough"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4fbe9b5254b5b7c01e42aaadc74b327644dc528a9916fa76193407d46b5c0951",
                          "typeString": "literal_string \"bond must be high enough\""
                        }
                      ],
                      "id": 6260,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "26210:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6268,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26210:76:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6269,
                  "nodeType": "ExpressionStatement",
                  "src": "26210:76:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6270,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "26303:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6272,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6271,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6214,
                        "src": "26313:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26303:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6273,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "26303:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6229,
                  "id": 6274,
                  "nodeType": "Return",
                  "src": "26296:41:14"
                }
              ]
            },
            "documentation": "@notice Return the final answer to the specified question, provided it matches the specified criteria.\n @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n @param question_id The ID of the question\n @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n @param min_timeout The timeout set in the initial question settings must be this high or higher\n @param min_bond The bond sent with the final answer must be this high or higher\n @return The answer formatted as a bytes32",
            "id": 6276,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6225,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6214,
                    "src": "25868:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6226,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6224,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "25853:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "25853:27:14"
              }
            ],
            "name": "getFinalAnswerIfMatches",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6214,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25729:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25729:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6216,
                  "name": "content_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25759:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6215,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25759:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6218,
                  "name": "arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25781:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "25781:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6220,
                  "name": "min_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25801:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6219,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25801:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6222,
                  "name": "min_bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25821:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6221,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25821:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25719:124:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6228,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6276,
                  "src": "25908:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25908:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25907:9:14"
            },
            "scope": 6970,
            "src": "25687:657:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6476,
              "nodeType": "Block",
              "src": "27856:2585:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6297,
                            "name": "history_hashes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6281,
                            "src": "27875:14:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "27875:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "27899:1:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "27875:25:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
                        "id": 6301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "27902:50:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        },
                        "value": "at least one history hash entry must be provided"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e887b9c35a99bf27d861fac479e37f4d87d4bceab6db3e0e5edcbd73f35992ed",
                          "typeString": "literal_string \"at least one history hash entry must be provided\""
                        }
                      ],
                      "id": 6296,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9706,
                        9707
                      ],
                      "referencedDeclaration": 9707,
                      "src": "27867:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27867:86:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6303,
                  "nodeType": "ExpressionStatement",
                  "src": "27867:86:14"
                },
                {
                  "assignments": [
                    6305
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6305,
                      "name": "payee",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28044:13:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6304,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "28044:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6310,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6306,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28060:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6308,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6307,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28076:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28060:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6309,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "payee",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4923,
                    "src": "28060:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28044:50:14"
                },
                {
                  "assignments": [
                    6312
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6312,
                      "name": "last_bond",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28105:17:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6311,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28105:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6317,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6313,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28125:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6315,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6314,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28141:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28125:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6316,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "last_bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4925,
                    "src": "28125:38:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28105:58:14"
                },
                {
                  "assignments": [
                    6319
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6319,
                      "name": "queued_funds",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28174:20:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6318,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28174:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6324,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6320,
                        "name": "question_claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4947,
                        "src": "28197:15:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                        }
                      },
                      "id": 6322,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6321,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28213:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28197:28:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$4928_storage",
                        "typeString": "struct RealitioERC20.Claim storage ref"
                      }
                    },
                    "id": 6323,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "queued_funds",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4927,
                    "src": "28197:41:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28174:64:14"
                },
                {
                  "assignments": [
                    6326
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6326,
                      "name": "last_history_hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28459:25:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6325,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28459:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6331,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6327,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "28487:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6329,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6328,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28497:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28487:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6330,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4911,
                    "src": "28487:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28459:63:14"
                },
                {
                  "assignments": [
                    6333
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6333,
                      "name": "best_answer",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28533:19:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6332,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "28533:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6338,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6334,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "28555:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6336,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6335,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6278,
                        "src": "28565:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "28555:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6337,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "28555:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28533:56:14"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6340,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6477,
                      "src": "28600:9:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6339,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28600:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6341,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28600:9:14"
                },
                {
                  "body": {
                    "id": 6411,
                    "nodeType": "Block",
                    "src": "28663:702:14",
                    "statements": [
                      {
                        "assignments": [
                          6354
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6354,
                            "name": "is_commitment",
                            "nodeType": "VariableDeclaration",
                            "scope": 6477,
                            "src": "28797:18:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 6353,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "28797:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6370,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6356,
                              "name": "last_history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6326,
                              "src": "28846:17:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6357,
                                "name": "history_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6281,
                                "src": "28865:14:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6359,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6358,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28880:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28865:17:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6360,
                                "name": "answers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6290,
                                "src": "28884:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 6362,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6361,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28892:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28884:10:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6363,
                                "name": "bonds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6287,
                                "src": "28896:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6365,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6364,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28902:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28896:8:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6366,
                                "name": "addrs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6284,
                                "src": "28906:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 6368,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6367,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6340,
                                "src": "28912:1:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "28906:8:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6355,
                            "name": "_verifyHistoryInputOrRevert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6556,
                            "src": "28818:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (bytes32,bytes32,bytes32,uint256,address) pure returns (bool)"
                            }
                          },
                          "id": 6369,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28818:97:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28797:118:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6376,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6371,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6319,
                            "src": "28942:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6374,
                                "name": "last_bond",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6312,
                                "src": "28974:9:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6372,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "28957:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7067,
                              "src": "28957:16:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 6375,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28957:27:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "28942:42:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6377,
                        "nodeType": "ExpressionStatement",
                        "src": "28942:42:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6397,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 6378,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "29000:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6379,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6305,
                                "src": "29014:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 6380,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "28999:21:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6382,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "29060:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6383,
                                "name": "best_answer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6333,
                                "src": "29073:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6384,
                                "name": "queued_funds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6319,
                                "src": "29086:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6385,
                                "name": "payee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6305,
                                "src": "29100:5:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6386,
                                  "name": "addrs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6284,
                                  "src": "29124:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 6388,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6387,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29130:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29124:8:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6389,
                                  "name": "bonds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6287,
                                  "src": "29134:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 6391,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6390,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29140:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29134:8:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 6392,
                                  "name": "answers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6290,
                                  "src": "29144:7:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 6394,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 6393,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6340,
                                  "src": "29152:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "29144:10:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 6395,
                                "name": "is_commitment",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6354,
                                "src": "29156:13:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 6381,
                              "name": "_processHistoryItem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6683,
                              "src": "29023:19:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$_t_address_$",
                                "typeString": "function (bytes32,bytes32,uint256,address,address,uint256,bytes32,bool) returns (uint256,address)"
                              }
                            },
                            "id": 6396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29023:147:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                              "typeString": "tuple(uint256,address)"
                            }
                          },
                          "src": "28999:171:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6398,
                        "nodeType": "ExpressionStatement",
                        "src": "28999:171:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6399,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6312,
                            "src": "29282:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6400,
                              "name": "bonds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6287,
                              "src": "29294:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6402,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6401,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6340,
                              "src": "29300:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29294:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "29282:20:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6404,
                        "nodeType": "ExpressionStatement",
                        "src": "29282:20:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6405,
                            "name": "last_history_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6326,
                            "src": "29316:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6406,
                              "name": "history_hashes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6281,
                              "src": "29336:14:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 6408,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6407,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6340,
                              "src": "29351:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "29336:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "29316:37:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6410,
                        "nodeType": "ExpressionStatement",
                        "src": "29316:37:14"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6349,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6346,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6340,
                      "src": "28631:1:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6347,
                        "name": "history_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6281,
                        "src": "28635:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28635:21:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28631:25:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6412,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6344,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6342,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6340,
                        "src": "28624:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "28628:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "28624:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6345,
                    "nodeType": "ExpressionStatement",
                    "src": "28624:5:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "28658:3:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6350,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6340,
                        "src": "28658:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6352,
                    "nodeType": "ExpressionStatement",
                    "src": "28658:3:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "28619:746:14"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6413,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6326,
                      "src": "29380:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6414,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4788,
                      "src": "29401:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "29380:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6467,
                    "nodeType": "Block",
                    "src": "30155:213:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6454,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6278,
                              "src": "30260:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6455,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6305,
                              "src": "30273:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6458,
                                  "name": "last_bond",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6312,
                                  "src": "30297:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6456,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6319,
                                  "src": "30280:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6457,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "add",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7067,
                                "src": "30280:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 6459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "30280:27:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6453,
                            "name": "_payPayee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6504,
                            "src": "30250:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,uint256)"
                            }
                          },
                          "id": 6460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30250:58:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6461,
                        "nodeType": "ExpressionStatement",
                        "src": "30250:58:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "30322:35:14",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6462,
                              "name": "question_claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4947,
                              "src": "30329:15:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                              }
                            },
                            "id": 6464,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6463,
                              "name": "question_id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6278,
                              "src": "30345:11:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "30329:28:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$4928_storage",
                              "typeString": "struct RealitioERC20.Claim storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6466,
                        "nodeType": "ExpressionStatement",
                        "src": "30322:35:14"
                      }
                    ]
                  },
                  "id": 6468,
                  "nodeType": "IfStatement",
                  "src": "29376:992:14",
                  "trueBody": {
                    "id": 6452,
                    "nodeType": "Block",
                    "src": "29412:737:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6416,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6305,
                            "src": "29815:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6417,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "29824:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29815:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 6430,
                        "nodeType": "IfStatement",
                        "src": "29811:137:14",
                        "trueBody": {
                          "id": 6429,
                          "nodeType": "Block",
                          "src": "29838:110:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6420,
                                    "name": "question_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6278,
                                    "src": "29866:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6421,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6305,
                                    "src": "29879:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6422,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6319,
                                    "src": "29886:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6419,
                                  "name": "_payPayee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6504,
                                  "src": "29856:9:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256)"
                                  }
                                },
                                "id": 6423,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29856:43:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6424,
                              "nodeType": "ExpressionStatement",
                              "src": "29856:43:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6427,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6425,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6319,
                                  "src": "29917:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6426,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29932:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "29917:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6428,
                              "nodeType": "ExpressionStatement",
                              "src": "29917:16:14"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6431,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "29962:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6433,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6432,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "29978:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "29962:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6434,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4923,
                            "src": "29962:34:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6435,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6305,
                            "src": "29999:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "29962:42:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 6437,
                        "nodeType": "ExpressionStatement",
                        "src": "29962:42:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6438,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "30018:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6440,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6439,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "30034:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30018:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6441,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "last_bond",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4925,
                            "src": "30018:38:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6442,
                            "name": "last_bond",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6312,
                            "src": "30059:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30018:50:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6444,
                        "nodeType": "ExpressionStatement",
                        "src": "30018:50:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6445,
                                "name": "question_claims",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4947,
                                "src": "30082:15:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$4928_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                                }
                              },
                              "id": 6447,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6446,
                                "name": "question_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6278,
                                "src": "30098:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "30082:28:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$4928_storage",
                                "typeString": "struct RealitioERC20.Claim storage ref"
                              }
                            },
                            "id": 6448,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "queued_funds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4927,
                            "src": "30082:41:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6449,
                            "name": "queued_funds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6319,
                            "src": "30126:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "30082:56:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6451,
                        "nodeType": "ExpressionStatement",
                        "src": "30082:56:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 6469,
                          "name": "questions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4943,
                          "src": "30378:9:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                          }
                        },
                        "id": 6471,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 6470,
                          "name": "question_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6278,
                          "src": "30388:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "30378:22:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                          "typeString": "struct RealitioERC20.Question storage ref"
                        }
                      },
                      "id": 6472,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "history_hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4911,
                      "src": "30378:35:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6473,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6326,
                      "src": "30416:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30378:55:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 6475,
                  "nodeType": "ExpressionStatement",
                  "src": "30378:55:14"
                }
              ]
            },
            "documentation": "@notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n Caller must provide the answer history, in reverse order\n @dev Works up the chain and assign bonds to the person who gave the right answer\n If someone gave the winning answer earlier, they must get paid from the higher bond\n That means we can't pay out the bond added at n until we have looked at n-1\n The first answer is authenticated by checking against the stored history_hash.\n One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n Once we get to a null hash we'll know we're done and there are no more answers.\n Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n @param question_id The ID of the question\n @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n @param addrs Last-to-first, the address of each answerer or commitment sender\n @param bonds Last-to-first, the bond supplied with each answer or commitment\n @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal",
            "id": 6477,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 6293,
                    "name": "question_id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6278,
                    "src": "27832:11:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 6294,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6292,
                  "name": "stateFinalized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5140,
                  "src": "27817:14:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "27817:27:14"
              }
            ],
            "name": "claimWinnings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6278,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27694:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6277,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27694:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6281,
                  "name": "history_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27724:24:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6279,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27724:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6280,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27724:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6284,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27750:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6282,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "27750:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6283,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27750:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6287,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27767:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6285,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "27767:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6286,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27767:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6290,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6477,
                  "src": "27784:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6288,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "27784:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6289,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "27784:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27684:123:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6295,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27856:0:14"
            },
            "scope": 6970,
            "src": "27662:2779:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6503,
              "nodeType": "Block",
              "src": "30531:113:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6486,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 444,
                        "src": "30541:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 6488,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6487,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6481,
                        "src": "30551:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "30541:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6493,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6483,
                          "src": "30581:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6489,
                            "name": "balanceOf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 444,
                            "src": "30560:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 6491,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6490,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6481,
                            "src": "30570:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30560:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6492,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7067,
                        "src": "30560:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 6494,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30560:27:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "30541:46:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6496,
                  "nodeType": "ExpressionStatement",
                  "src": "30541:46:14"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6498,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6479,
                        "src": "30611:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6499,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6481,
                        "src": "30624:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6500,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6483,
                        "src": "30631:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6497,
                      "name": "LogClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4893,
                      "src": "30602:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 6501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30602:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6502,
                  "nodeType": "EmitStatement",
                  "src": "30597:40:14"
                }
              ]
            },
            "documentation": null,
            "id": 6504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_payPayee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6484,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6479,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30466:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6478,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30466:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6481,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30487:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6480,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30487:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6483,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 6504,
                  "src": "30502:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6482,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30502:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30465:51:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30531:0:14"
            },
            "scope": 6970,
            "src": "30447:197:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6555,
              "nodeType": "Block",
              "src": "30835:364:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6519,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6506,
                      "src": "30849:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6523,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6508,
                              "src": "30897:12:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6524,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6510,
                              "src": "30911:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6525,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6512,
                              "src": "30919:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6526,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6514,
                              "src": "30925:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 6527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30931:4:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6521,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "30880:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6522,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "30880:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30880:56:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6520,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "30870:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30870:67:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30849:88:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6534,
                  "nodeType": "IfStatement",
                  "src": "30845:131:14",
                  "trueBody": {
                    "id": 6533,
                    "nodeType": "Block",
                    "src": "30940:36:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 6531,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30961:4:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6518,
                        "id": 6532,
                        "nodeType": "Return",
                        "src": "30954:11:14"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6535,
                      "name": "last_history_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6506,
                      "src": "30989:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6539,
                              "name": "history_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6508,
                              "src": "31037:12:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6540,
                              "name": "answer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6510,
                              "src": "31051:6:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6541,
                              "name": "bond",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6512,
                              "src": "31059:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6542,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6514,
                              "src": "31065:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 6543,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31071:5:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6537,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9690,
                              "src": "31020:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 6538,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "31020:16:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 6544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31020:57:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 6536,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9697,
                        "src": "31010:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 6545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "31010:68:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "30989:89:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6550,
                  "nodeType": "IfStatement",
                  "src": "30985:133:14",
                  "trueBody": {
                    "id": 6549,
                    "nodeType": "Block",
                    "src": "31081:37:14",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 6547,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "31102:5:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6518,
                        "id": 6548,
                        "nodeType": "Return",
                        "src": "31095:12:14"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
                        "id": 6552,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31135:56:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        },
                        "value": "History input provided did not match the expected hash"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_105eb464ca1766d0405b5fa901151a4c75699ccc5e522facb7c8a5407d6bd553",
                          "typeString": "literal_string \"History input provided did not match the expected hash\""
                        }
                      ],
                      "id": 6551,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9708,
                        9709
                      ],
                      "referencedDeclaration": 9709,
                      "src": "31128:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 6553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31128:64:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6554,
                  "nodeType": "ExpressionStatement",
                  "src": "31128:64:14"
                }
              ]
            },
            "documentation": null,
            "id": 6556,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_verifyHistoryInputOrRevert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6506,
                  "name": "last_history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30696:25:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6505,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30696:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6508,
                  "name": "history_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30731:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6507,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30731:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6510,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30753:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6509,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30753:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6512,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30769:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6511,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "30769:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6514,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30783:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6513,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30783:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30686:115:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6517,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6556,
                  "src": "30829:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6516,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "30829:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30828:6:14"
            },
            "scope": 6970,
            "src": "30650:549:14",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6682,
              "nodeType": "Block",
              "src": "31449:2168:14",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6579,
                    "name": "is_commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6572,
                    "src": "31648:13:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6614,
                  "nodeType": "IfStatement",
                  "src": "31644:482:14",
                  "trueBody": {
                    "id": 6613,
                    "nodeType": "Block",
                    "src": "31663:463:14",
                    "statements": [
                      {
                        "assignments": [
                          6581
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6581,
                            "name": "commitment_id",
                            "nodeType": "VariableDeclaration",
                            "scope": 6683,
                            "src": "31677:21:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6580,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "31677:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6583,
                        "initialValue": {
                          "argumentTypes": null,
                          "id": 6582,
                          "name": "answer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6570,
                          "src": "31701:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "31677:30:14"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 6588,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "31822:39:14",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6584,
                                "name": "commitments",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4951,
                                "src": "31823:11:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                  "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                }
                              },
                              "id": 6586,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6585,
                                "name": "commitment_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6581,
                                "src": "31835:13:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31823:26:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                "typeString": "struct RealitioERC20.Commitment storage ref"
                              }
                            },
                            "id": 6587,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "is_revealed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4918,
                            "src": "31823:38:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6611,
                          "nodeType": "Block",
                          "src": "31981:135:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6604,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6599,
                                  "name": "answer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6570,
                                  "src": "31999:6:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6600,
                                      "name": "commitments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4951,
                                      "src": "32008:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                      }
                                    },
                                    "id": 6602,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6601,
                                      "name": "commitment_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6581,
                                      "src": "32020:13:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32008:26:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                      "typeString": "struct RealitioERC20.Commitment storage ref"
                                    }
                                  },
                                  "id": 6603,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealed_answer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4920,
                                  "src": "32008:42:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "31999:51:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6605,
                              "nodeType": "ExpressionStatement",
                              "src": "31999:51:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6609,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "32068:33:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6606,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4951,
                                    "src": "32075:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6608,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6607,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6581,
                                    "src": "32087:13:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "32075:26:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6610,
                              "nodeType": "ExpressionStatement",
                              "src": "32068:33:14"
                            }
                          ]
                        },
                        "id": 6612,
                        "nodeType": "IfStatement",
                        "src": "31818:298:14",
                        "trueBody": {
                          "id": 6598,
                          "nodeType": "Block",
                          "src": "31863:112:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6592,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "delete",
                                "prefix": true,
                                "src": "31881:33:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6589,
                                    "name": "commitments",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4951,
                                    "src": "31888:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$4921_storage_$",
                                      "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                                    }
                                  },
                                  "id": 6591,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6590,
                                    "name": "commitment_id",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6581,
                                    "src": "31900:13:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "31888:26:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Commitment_$4921_storage",
                                    "typeString": "struct RealitioERC20.Commitment storage ref"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6593,
                              "nodeType": "ExpressionStatement",
                              "src": "31881:33:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6594,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "31940:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6595,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6564,
                                    "src": "31954:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "id": 6596,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "31939:21:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                                  "typeString": "tuple(uint256,address)"
                                }
                              },
                              "functionReturnParameters": 6578,
                              "id": 6597,
                              "nodeType": "Return",
                              "src": "31932:28:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6615,
                      "name": "answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6570,
                      "src": "32140:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6616,
                      "name": "best_answer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6560,
                      "src": "32150:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "32140:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6677,
                  "nodeType": "IfStatement",
                  "src": "32136:1435:14",
                  "trueBody": {
                    "id": 6676,
                    "nodeType": "Block",
                    "src": "32163:1408:14",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6620,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6618,
                            "name": "payee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6564,
                            "src": "32182:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6619,
                            "name": "NULL_ADDRESS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4783,
                            "src": "32191:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "32182:21:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "id": 6645,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6643,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6566,
                              "src": "32521:4:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 6644,
                              "name": "payee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6564,
                              "src": "32529:5:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "src": "32521:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 6674,
                          "nodeType": "IfStatement",
                          "src": "32517:1043:14",
                          "trueBody": {
                            "id": 6673,
                            "nodeType": "Block",
                            "src": "32536:1024:14",
                            "statements": [
                              {
                                "assignments": [
                                  6647
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 6647,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6683,
                                    "src": "33155:27:14",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 6646,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "33155:7:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 6655,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "condition": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6650,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 6648,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6562,
                                          "src": "33186:12:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 6649,
                                          "name": "bond",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6568,
                                          "src": "33202:4:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "33186:20:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "id": 6651,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "33185:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "argumentTypes": null,
                                    "id": 6653,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "33217:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6654,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "33185:44:14",
                                  "trueExpression": {
                                    "argumentTypes": null,
                                    "id": 6652,
                                    "name": "bond",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6568,
                                    "src": "33210:4:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "33155:74:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6657,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6558,
                                      "src": "33322:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6658,
                                      "name": "payee",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6564,
                                      "src": "33335:5:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6661,
                                          "name": "answer_takeover_fee",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6647,
                                          "src": "33359:19:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6659,
                                          "name": "queued_funds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6562,
                                          "src": "33342:12:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6660,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sub",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7043,
                                        "src": "33342:16:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6662,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "33342:37:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 6656,
                                    "name": "_payPayee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6504,
                                    "src": "33312:9:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256)"
                                    }
                                  },
                                  "id": 6663,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "33312:68:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6664,
                                "nodeType": "ExpressionStatement",
                                "src": "33312:68:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6667,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6665,
                                    "name": "payee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6564,
                                    "src": "33480:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6666,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6566,
                                    "src": "33488:4:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "src": "33480:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 6668,
                                "nodeType": "ExpressionStatement",
                                "src": "33480:12:14"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6671,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 6669,
                                    "name": "queued_funds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6562,
                                    "src": "33510:12:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 6670,
                                    "name": "answer_takeover_fee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6647,
                                    "src": "33525:19:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "33510:34:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6672,
                                "nodeType": "ExpressionStatement",
                                "src": "33510:34:14"
                              }
                            ]
                          }
                        },
                        "id": 6675,
                        "nodeType": "IfStatement",
                        "src": "32178:1382:14",
                        "trueBody": {
                          "id": 6642,
                          "nodeType": "Block",
                          "src": "32205:306:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6623,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6621,
                                  "name": "payee",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6564,
                                  "src": "32352:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 6622,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6566,
                                  "src": "32360:4:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "32352:12:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6624,
                              "nodeType": "ExpressionStatement",
                              "src": "32352:12:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6633,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6625,
                                  "name": "queued_funds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6562,
                                  "src": "32382:12:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6628,
                                          "name": "questions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4943,
                                          "src": "32414:9:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                            "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                          }
                                        },
                                        "id": 6630,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6629,
                                          "name": "question_id",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6558,
                                          "src": "32424:11:14",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "32414:22:14",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Question_$4914_storage",
                                          "typeString": "struct RealitioERC20.Question storage ref"
                                        }
                                      },
                                      "id": 6631,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "bounty",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4907,
                                      "src": "32414:29:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6626,
                                      "name": "queued_funds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6562,
                                      "src": "32397:12:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6627,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7067,
                                    "src": "32397:16:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6632,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32397:47:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "32382:62:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6634,
                              "nodeType": "ExpressionStatement",
                              "src": "32382:62:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6640,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 6635,
                                      "name": "questions",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4943,
                                      "src": "32462:9:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                                        "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                                      }
                                    },
                                    "id": 6637,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 6636,
                                      "name": "question_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6558,
                                      "src": "32472:11:14",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "32462:22:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Question_$4914_storage",
                                      "typeString": "struct RealitioERC20.Question storage ref"
                                    }
                                  },
                                  "id": 6638,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "bounty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4907,
                                  "src": "32462:29:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 6639,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "32494:1:14",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "32462:33:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6641,
                              "nodeType": "ExpressionStatement",
                              "src": "32462:33:14"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 6678,
                        "name": "queued_funds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6562,
                        "src": "33589:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6679,
                        "name": "payee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6564,
                        "src": "33603:5:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "id": 6680,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "33588:21:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                      "typeString": "tuple(uint256,address)"
                    }
                  },
                  "functionReturnParameters": 6578,
                  "id": 6681,
                  "nodeType": "Return",
                  "src": "33581:28:14"
                }
              ]
            },
            "documentation": null,
            "id": 6683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_processHistoryItem",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6558,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31243:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6557,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31243:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6560,
                  "name": "best_answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31264:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6559,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31264:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6562,
                  "name": "queued_funds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31294:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6561,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31294:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6564,
                  "name": "payee",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31316:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6563,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31316:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6566,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31340:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6565,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31340:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6568,
                  "name": "bond",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31354:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6567,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31354:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6570,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31368:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6569,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31368:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6572,
                  "name": "is_commitment",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31384:18:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6571,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31384:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31233:175:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6575,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31431:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31431:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6577,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6683,
                  "src": "31440:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "31440:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31430:18:14"
            },
            "scope": 6970,
            "src": "31205:2412:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6838,
              "nodeType": "Block",
              "src": "34842:723:14",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6707,
                      "name": "qi",
                      "nodeType": "VariableDeclaration",
                      "scope": 6839,
                      "src": "34861:10:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6706,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34861:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6708,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34861:10:14"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6710,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 6839,
                      "src": "34881:9:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6709,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "34881:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6711,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34881:9:14"
                },
                {
                  "body": {
                    "id": 6833,
                    "nodeType": "Block",
                    "src": "34945:594:14",
                    "statements": [
                      {
                        "assignments": [
                          6724
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6724,
                            "name": "qid",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "34959:11:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 6723,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "34959:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6728,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6725,
                            "name": "question_ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6686,
                            "src": "34973:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 6727,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6726,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6707,
                            "src": "34986:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "34973:16:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "34959:30:14"
                      },
                      {
                        "assignments": [
                          6730
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6730,
                            "name": "ln",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35003:10:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6729,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35003:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6734,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6731,
                            "name": "lengths",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6689,
                            "src": "35016:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 6733,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6732,
                            "name": "qi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6707,
                            "src": "35024:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "35016:11:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35003:24:14"
                      },
                      {
                        "assignments": [
                          6738
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6738,
                            "name": "hh",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35041:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6736,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35041:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6737,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35041:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6744,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6742,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35077:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6741,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35063:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6739,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35067:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6740,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35067:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35063:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35041:39:14"
                      },
                      {
                        "assignments": [
                          6748
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6748,
                            "name": "ad",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35094:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6746,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35094:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6747,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35094:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6754,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6752,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35130:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35116:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (address[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6749,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "35120:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6750,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35120:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            }
                          },
                          "id": 6753,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35116:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35094:39:14"
                      },
                      {
                        "assignments": [
                          6758
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6758,
                            "name": "bo",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35147:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6756,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35147:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6757,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35147:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6764,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6762,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35183:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35169:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (uint256[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6759,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "35173:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6760,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35173:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[]"
                              }
                            }
                          },
                          "id": 6763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35169:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35147:39:14"
                      },
                      {
                        "assignments": [
                          6768
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6768,
                            "name": "an",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35200:19:14",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6766,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35200:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6767,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35200:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6774,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6772,
                              "name": "ln",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6730,
                              "src": "35236:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6771,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "35222:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (bytes32[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6769,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "35226:7:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6770,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "35226:9:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 6773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35222:17:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35200:39:14"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6776,
                            "name": "j",
                            "nodeType": "VariableDeclaration",
                            "scope": 6839,
                            "src": "35253:9:14",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6775,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "35253:7:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6777,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "35253:9:14"
                      },
                      {
                        "body": {
                          "id": 6823,
                          "nodeType": "Block",
                          "src": "35301:180:14",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6788,
                                    "name": "hh",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6738,
                                    "src": "35319:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6790,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6789,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35322:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35319:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6791,
                                    "name": "hist_hashes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6692,
                                    "src": "35327:11:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6793,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6792,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35339:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35327:14:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35319:22:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6795,
                              "nodeType": "ExpressionStatement",
                              "src": "35319:22:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6802,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6796,
                                    "name": "ad",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6748,
                                    "src": "35359:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6798,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6797,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35362:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35359:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6799,
                                    "name": "addrs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6695,
                                    "src": "35367:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 6801,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6800,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35373:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35367:8:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "35359:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6803,
                              "nodeType": "ExpressionStatement",
                              "src": "35359:16:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6810,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6804,
                                    "name": "bo",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6758,
                                    "src": "35393:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6806,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6805,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35396:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35393:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6807,
                                    "name": "bonds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6698,
                                    "src": "35401:5:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 6809,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6808,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35407:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35401:8:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "35393:16:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6811,
                              "nodeType": "ExpressionStatement",
                              "src": "35393:16:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6818,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6812,
                                    "name": "an",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6768,
                                    "src": "35427:2:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6814,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6813,
                                    "name": "j",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6776,
                                    "src": "35430:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "35427:5:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6815,
                                    "name": "answers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6701,
                                    "src": "35435:7:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 6817,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6816,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6710,
                                    "src": "35443:1:14",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "35435:10:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "35427:18:14",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 6819,
                              "nodeType": "ExpressionStatement",
                              "src": "35427:18:14"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6821,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "35463:3:14",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6820,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6710,
                                  "src": "35463:1:14",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6822,
                              "nodeType": "ExpressionStatement",
                              "src": "35463:3:14"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6782,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6776,
                            "src": "35288:1:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6783,
                            "name": "ln",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6730,
                            "src": "35292:2:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "35288:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6824,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 6778,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6776,
                              "src": "35281:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 6779,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "35285:1:14",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "35281:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6781,
                          "nodeType": "ExpressionStatement",
                          "src": "35281:5:14"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 6786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "35296:3:14",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 6785,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6776,
                              "src": "35296:1:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6787,
                          "nodeType": "ExpressionStatement",
                          "src": "35296:3:14"
                        },
                        "nodeType": "ForStatement",
                        "src": "35276:205:14"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6826,
                              "name": "qid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6724,
                              "src": "35508:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6827,
                              "name": "hh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6738,
                              "src": "35513:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6828,
                              "name": "ad",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6748,
                              "src": "35517:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6829,
                              "name": "bo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6758,
                              "src": "35521:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6830,
                              "name": "an",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6768,
                              "src": "35525:2:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            ],
                            "id": 6825,
                            "name": "claimWinnings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6477,
                            "src": "35494:13:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (bytes32,bytes32[] memory,address[] memory,uint256[] memory,bytes32[] memory)"
                            }
                          },
                          "id": 6831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35494:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6832,
                        "nodeType": "ExpressionStatement",
                        "src": "35494:34:14"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6716,
                      "name": "qi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6707,
                      "src": "34913:2:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6717,
                        "name": "question_ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6686,
                        "src": "34918:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 6718,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "34918:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "34913:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6834,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 6712,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6707,
                        "src": "34905:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 6713,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "34910:1:14",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "34905:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6715,
                    "nodeType": "ExpressionStatement",
                    "src": "34905:6:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6721,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "34939:4:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6720,
                        "name": "qi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6707,
                        "src": "34939:2:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6722,
                    "nodeType": "ExpressionStatement",
                    "src": "34939:4:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "34900:639:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6835,
                      "name": "withdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "35548:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "35548:10:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6837,
                  "nodeType": "ExpressionStatement",
                  "src": "35548:10:14"
                }
              ]
            },
            "documentation": "@notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n Caller must provide the answer history for each question, in reverse order\n @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n @param question_ids The IDs of the questions you want to claim for\n @param lengths The number of history entries you will supply for each question ID\n @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n @param answers In a single list for all supplied questions, each answer supplied, or commitment ID ",
            "id": 6839,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 6704,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6703,
                  "name": "stateAny",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4976,
                  "src": "34754:8:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "34754:10:14"
              }
            ],
            "name": "claimMultipleAndWithdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6686,
                  "name": "question_ids",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34612:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6684,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34612:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6685,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34612:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6689,
                  "name": "lengths",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34636:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6687,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34636:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6688,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34636:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6692,
                  "name": "hist_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34664:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6690,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34664:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6691,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34664:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6695,
                  "name": "addrs",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34687:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6693,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "34687:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6694,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34687:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6698,
                  "name": "bonds",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34704:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6696,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "34704:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6697,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34704:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6701,
                  "name": "answers",
                  "nodeType": "VariableDeclaration",
                  "scope": 6839,
                  "src": "34721:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6699,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "34721:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6700,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "34721:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "34602:142:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6705,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "34842:0:14"
            },
            "scope": 6970,
            "src": "34562:1003:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6851,
              "nodeType": "Block",
              "src": "35788:59:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6846,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "35805:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6848,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6847,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6841,
                        "src": "35815:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "35805:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6849,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "content_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4895,
                    "src": "35805:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6845,
                  "id": 6850,
                  "nodeType": "Return",
                  "src": "35798:42:14"
                }
              ]
            },
            "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
            "id": 6852,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getContentHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6841,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6852,
                  "src": "35733:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6840,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35733:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35732:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6845,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6844,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6852,
                  "src": "35779:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6843,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35779:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35778:9:14"
            },
            "scope": 6970,
            "src": "35709:138:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6864,
              "nodeType": "Block",
              "src": "36046:57:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6859,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36063:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6861,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6860,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6854,
                        "src": "36073:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36063:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6862,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "arbitrator",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4897,
                    "src": "36063:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6858,
                  "id": 6863,
                  "nodeType": "Return",
                  "src": "36056:40:14"
                }
              ]
            },
            "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
            "id": 6865,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getArbitrator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6855,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6854,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "35991:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6853,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35991:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "35990:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6857,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "36037:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6856,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "36037:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36036:9:14"
            },
            "scope": 6970,
            "src": "35968:135:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6877,
              "nodeType": "Block",
              "src": "36314:57:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6872,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36331:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6874,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6873,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6867,
                        "src": "36341:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36331:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6875,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "opening_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4899,
                    "src": "36331:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6871,
                  "id": 6876,
                  "nodeType": "Return",
                  "src": "36324:40:14"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
            "id": 6878,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getOpeningTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6867,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6878,
                  "src": "36260:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6866,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36260:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36259:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6871,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6870,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6878,
                  "src": "36306:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6869,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36306:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36305:8:14"
            },
            "scope": 6970,
            "src": "36238:133:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6890,
              "nodeType": "Block",
              "src": "36572:54:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6885,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36589:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6887,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6886,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6880,
                        "src": "36599:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36589:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6888,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "timeout",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4901,
                    "src": "36589:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6884,
                  "id": 6889,
                  "nodeType": "Return",
                  "src": "36582:37:14"
                }
              ]
            },
            "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
            "id": 6891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6880,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6891,
                  "src": "36518:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6879,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36518:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36517:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6883,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6891,
                  "src": "36564:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6882,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36564:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36563:8:14"
            },
            "scope": 6970,
            "src": "36498:128:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6903,
              "nodeType": "Block",
              "src": "36842:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6898,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "36859:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6900,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6899,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6893,
                        "src": "36869:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36859:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6901,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalize_ts",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4903,
                    "src": "36859:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 6897,
                  "id": 6902,
                  "nodeType": "Return",
                  "src": "36852:41:14"
                }
              ]
            },
            "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
            "id": 6904,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFinalizeTS",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6894,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6893,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6904,
                  "src": "36788:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6892,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36788:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36787:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6897,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6896,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6904,
                  "src": "36834:6:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6895,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "36834:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "36833:8:14"
            },
            "scope": 6970,
            "src": "36765:135:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6916,
              "nodeType": "Block",
              "src": "37107:69:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6911,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37124:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6913,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6912,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6906,
                        "src": "37134:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37124:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6914,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "is_pending_arbitration",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4905,
                    "src": "37124:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6910,
                  "id": 6915,
                  "nodeType": "Return",
                  "src": "37117:52:14"
                }
              ]
            },
            "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
            "id": 6917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isPendingArbitration",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6907,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6906,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6917,
                  "src": "37055:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6905,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37055:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37054:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6909,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6917,
                  "src": "37101:4:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6908,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "37101:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37100:6:14"
            },
            "scope": 6970,
            "src": "37025:151:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6929,
              "nodeType": "Block",
              "src": "37429:53:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6924,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37446:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6926,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6925,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6919,
                        "src": "37456:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37446:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6927,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bounty",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4907,
                    "src": "37446:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6923,
                  "id": 6928,
                  "nodeType": "Return",
                  "src": "37439:36:14"
                }
              ]
            },
            "documentation": "@notice Returns the current total unclaimed bounty\n @dev Set back to zero once the bounty has been claimed\n @param question_id The ID of the question ",
            "id": 6930,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBounty",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6919,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6930,
                  "src": "37374:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37374:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37373:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6922,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6930,
                  "src": "37420:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6921,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37420:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37419:9:14"
            },
            "scope": 6970,
            "src": "37355:127:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6942,
              "nodeType": "Block",
              "src": "37665:58:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6937,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "37682:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6939,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6938,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6932,
                        "src": "37692:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "37682:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6940,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "best_answer",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4909,
                    "src": "37682:34:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6936,
                  "id": 6941,
                  "nodeType": "Return",
                  "src": "37675:41:14"
                }
              ]
            },
            "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
            "id": 6943,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBestAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6932,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6943,
                  "src": "37610:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6931,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37610:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37609:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6935,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6943,
                  "src": "37656:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37656:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37655:9:14"
            },
            "scope": 6970,
            "src": "37587:136:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6955,
              "nodeType": "Block",
              "src": "37986:59:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6950,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "38003:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6952,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6951,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6945,
                        "src": "38013:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38003:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6953,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "history_hash",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4911,
                    "src": "38003:35:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6949,
                  "id": 6954,
                  "nodeType": "Return",
                  "src": "37996:42:14"
                }
              ]
            },
            "documentation": "@notice Returns the history hash of the question \n @param question_id The ID of the question \n @dev Updated on each answer, then rewound as each is claimed",
            "id": 6956,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHistoryHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6945,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6956,
                  "src": "37931:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6944,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37931:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37930:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6948,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6956,
                  "src": "37977:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6947,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "37977:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "37976:9:14"
            },
            "scope": 6970,
            "src": "37907:138:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6968,
              "nodeType": "Block",
              "src": "38244:51:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6963,
                        "name": "questions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4943,
                        "src": "38261:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$4914_storage_$",
                          "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                        }
                      },
                      "id": 6965,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 6964,
                        "name": "question_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6958,
                        "src": "38271:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "38261:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Question_$4914_storage",
                        "typeString": "struct RealitioERC20.Question storage ref"
                      }
                    },
                    "id": 6966,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "bond",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 4913,
                    "src": "38261:27:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6962,
                  "id": 6967,
                  "nodeType": "Return",
                  "src": "38254:34:14"
                }
              ]
            },
            "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
            "id": 6969,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBond",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6958,
                  "name": "question_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 6969,
                  "src": "38189:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6957,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "38189:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38188:21:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 6962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6961,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6969,
                  "src": "38235:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "38235:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "38234:9:14"
            },
            "scope": 6970,
            "src": "38172:123:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6971,
        "src": "133:38165:14"
      }
    ],
    "src": "0:38299:14"
  },
  "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.716Z"
}